Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a Linux ARM64 builder node #255

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions 3.17/bioc/kunpeng1/config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/usr/bin/env bash
# ===================================
# Settings for kunpeng1 (Linux ARM64)
# ===================================



#set -x # print commands and their arguments as they are executed

export BBS_DEBUG="0"

export BBS_NODE_HOSTNAME="kunpeng1"
export BBS_USER="biocbuild"
export BBS_WORK_TOPDIR="/home/biocbuild/bbs-3.17-bioc"
export BBS_R_HOME="$BBS_WORK_TOPDIR/R"
export BBS_NB_CPU=8 # 8 cores are available
# export BBS_BUILD_NB_CPU=26 # 8 cores are available
# export BBS_CHECK_NB_CPU=30 # 8 cores are available

# Central build node is nebbiolo1 at DFCI.
#export BBS_CENTRAL_RHOST="nebbiolo1"
export BBS_CENTRAL_RHOST="localhost"
export BBS_RSH_CMD="ssh -F /home/biocbuild/.ssh/config"
#export BBS_CENTRAL_ROOT_URL="http://155.52.207.165"
export BBS_CENTRAL_ROOT_URL="http://$BBS_CENTRAL_RHOST"
export BBS_PRODUCT_TRANSMISSION_MODE="asynchronous"



# Shared settings (by all Unix nodes).

wd0=$(pwd)
cd ..
. ./config.sh
cd "$wd0"



# -----------------------------------------------------------------------------
# The variables below control postrun.sh so only need to be defined on the
# central node

# Control propagation:
#export BBS_OUTGOING_MAP="source:nebbiolo1/buildsrc win.binary:palomino3/buildbin mac.binary:merida1/buildbin"
#export BBS_FINAL_REPO="file://home/biocpush/PACKAGES/$BBS_BIOC_VERSION/bioc"

# Control generation of the report:
#export BBS_REPORT_NODES="nebbiolo1 palomino3:bin merida1:bin"
export BBS_REPORT_NODES="kunpeng1"
export BBS_REPORT_PATH="$BBS_CENTRAL_RDIR/report"
export BBS_REPORT_CSS="$BBS_HOME/$BBS_BIOC_VERSION/report.css"
export BBS_REPORT_BGIMG="$BBS_HOME/images/DEVEL3b.png"
export BBS_REPORT_JS="$BBS_HOME/$BBS_BIOC_VERSION/report.js"
#export BBS_REPORT_MOTD="Happy new year to all Bioconductor developers!"

# Control where to publish the report:
#export BBS_PUBLISHED_REPORT_RELATIVEURL="checkResults/$BBS_BIOC_VERSION/$BBS_BUILDTYPE-LATEST/"
#export BBS_PUBLISHED_REPORT_DEST_DIR="[email protected]:/extra/www/bioc/$BBS_PUBLISHED_REPORT_RELATIVEURL"


# -----------------------------------------------------------------------------
# The variables below control stage7-notify.sh so only need to be defined on
# the central node

# TODO: when BBS_NOTIFY_NODES is not defined then take all the build nodes
#export BBS_NOTIFY_NODES="nebbiolo1"
#export BBS_PUBLISHED_REPORT_URL="https://master.bioconductor.org/$BBS_PUBLISHED_REPORT_RELATIVEURL"

44 changes: 44 additions & 0 deletions 3.17/bioc/kunpeng1/postrun.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash

echo ""
echo "======================================================================="
this_script=$(basename "$0")
echo "<<< Now starting $this_script at $(date) >>>"
echo "-------------------"

# Adapted from : http://stackoverflow.com/a/246128/320399
script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
. "${script_dir}"/config.sh

cd "$BBS_CENTRAL_RDIR"

# Remove target repo (no-vignettes source packages). It's no longer
# needed so we can make room before we generate the HTML report below
# and before we propagate packages (this will be done later by the
# updateReposPkgs-bioc.sh script that we run from the biocpush
# account). Can help significantly if the machine has limited disk capacity.
rm -rf src

# Fix perms
chmod -R +r .
find products-in -type d -exec chmod 755 {} \;

set -e # Exit immediately if a simple command exits with a non-zero status.

$BBS_PYTHON_CMD $BBS_HOME/BBS-make-BUILD_STATUS_DB.py

if [ -n "$BBS_OUTGOING_MAP" ]; then
$BBS_PYTHON_CMD $BBS_HOME/BBS-make-OUTGOING.py
$BBS_PYTHON_CMD $BBS_HOME/BBS-make-PROPAGATION_STATUS_DB.py
fi

# Generate the HTML report
$BBS_PYTHON_CMD $BBS_HOME/BBS-report.py simple-layout
REPORT_DIRNAME=$(dirname "$BBS_REPORT_PATH")
REPORT_BASENAME=$(basename "$BBS_REPORT_PATH")
cd "$REPORT_DIRNAME"
$BBS_TAR_CMD zcf "$REPORT_BASENAME.tgz" "$REPORT_BASENAME"
mv "$REPORT_BASENAME.tgz" "$BBS_REPORT_PATH"

# Publish it (no more --delete here, too dangerous!)
$BBS_RSYNC_CMD -ave 'ssh -o StrictHostKeyChecking=no' "$BBS_REPORT_PATH/" "$BBS_PUBLISHED_REPORT_DEST_DIR/"
5 changes: 5 additions & 0 deletions 3.17/bioc/kunpeng1/prerun.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

. ./config.sh

$BBS_PYTHON_CMD $BBS_HOME/BBS-prerun.py
12 changes: 12 additions & 0 deletions 3.17/bioc/kunpeng1/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

. ./config.sh

. $BBS_HOME/utils/clean-before-run.sh

$BBS_PYTHON_CMD $BBS_HOME/BBS-run.py

# We have to use brute force because some R processes might still be running
# in the background. This will kick out the user BBS is running as!
sleep 60 # wait 1 min before the kill
kill -9 -1
71 changes: 71 additions & 0 deletions 3.18/bioc/kunpeng1/config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#!/usr/bin/env bash
# ===================================
# Settings for kunpeng1 (Linux ARM64)
# ===================================



#set -x # print commands and their arguments as they are executed

export BBS_DEBUG="0"

export BBS_NODE_HOSTNAME="kunpeng1"
export BBS_USER="biocbuild"
export BBS_WORK_TOPDIR="/home/biocbuild/bbs-3.18-bioc"
export BBS_R_HOME="/home/biocbuild/R/R-4.3.0-bin"
export R_LIBS="$BBS_R_HOME/site-library"
export BBS_NB_CPU=24 # 32 cores are available
export BBS_BUILD_NB_CPU=10 # 32 cores are available
export BBS_CHECK_NB_CPU=10 # 32 cores are available

# Central build node is nebbiolo1 at DFCI.
#export BBS_CENTRAL_RHOST="nebbiolo1"
export BBS_CENTRAL_RHOST="localhost"
export BBS_RSH_CMD="ssh -F /home/biocbuild/.ssh/config"
#export BBS_CENTRAL_ROOT_URL="http://155.52.207.165"
export BBS_CENTRAL_ROOT_URL="http://$BBS_CENTRAL_RHOST"
export BBS_PRODUCT_TRANSMISSION_MODE="asynchronous"

export BBS_BUILD_TIMEOUT=2400
export BBS_CHECK_TIMEOUT=2400

# Shared settings (by all Unix nodes).

wd0=$(pwd)
cd ..
. ./config.sh
cd "$wd0"



# -----------------------------------------------------------------------------
# The variables below control postrun.sh so only need to be defined on the
# central node

# Control propagation:
#export BBS_OUTGOING_MAP="source:nebbiolo1/buildsrc win.binary:palomino3/buildbin mac.binary:merida1/buildbin"
#export BBS_FINAL_REPO="file://home/biocpush/PACKAGES/$BBS_BIOC_VERSION/bioc"

# Control generation of the report:
#export BBS_REPORT_NODES="nebbiolo1 palomino3:bin merida1:bin"
export BBS_REPORT_NODES="kunpeng1"
export BBS_REPORT_PATH="$BBS_CENTRAL_RDIR/report"
export BBS_REPORT_CSS="$BBS_HOME/$BBS_BIOC_VERSION/report.css"
export BBS_REPORT_BGIMG="$BBS_HOME/images/DEVEL3b.png"
export BBS_REPORT_JS="$BBS_HOME/$BBS_BIOC_VERSION/report.js"
#export BBS_REPORT_MOTD="Happy new year to all Bioconductor developers!"

# Control where to publish the report:
#export BBS_PUBLISHED_REPORT_RELATIVEURL="checkResults/$BBS_BIOC_VERSION/$BBS_BUILDTYPE-LATEST/"
#export BBS_PUBLISHED_REPORT_DEST_DIR="[email protected]:/extra/www/bioc/$BBS_PUBLISHED_REPORT_RELATIVEURL"


# -----------------------------------------------------------------------------
# The variables below control stage7-notify.sh so only need to be defined on
# the central node

# TODO: when BBS_NOTIFY_NODES is not defined then take all the build nodes
#export BBS_NOTIFY_NODES="nebbiolo1"
#export BBS_PUBLISHED_REPORT_URL="https://master.bioconductor.org/$BBS_PUBLISHED_REPORT_RELATIVEURL"


44 changes: 44 additions & 0 deletions 3.18/bioc/kunpeng1/postrun.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#!/bin/bash

echo ""
echo "======================================================================="
this_script=$(basename "$0")
echo "<<< Now starting $this_script at $(date) >>>"
echo "-------------------"

# Adapted from : http://stackoverflow.com/a/246128/320399
script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
. "${script_dir}"/config.sh

cd "$BBS_CENTRAL_RDIR"

# Remove target repo (no-vignettes source packages). It's no longer
# needed so we can make room before we generate the HTML report below
# and before we propagate packages (this will be done later by the
# updateReposPkgs-bioc.sh script that we run from the biocpush
# account). Can help significantly if the machine has limited disk capacity.
rm -rf src

# Fix perms
chmod -R +r .
find products-in -type d -exec chmod 755 {} \;

set -e # Exit immediately if a simple command exits with a non-zero status.

$BBS_PYTHON_CMD $BBS_HOME/BBS-make-BUILD_STATUS_DB.py

if [ -n "$BBS_OUTGOING_MAP" ]; then
$BBS_PYTHON_CMD $BBS_HOME/BBS-make-OUTGOING.py
$BBS_PYTHON_CMD $BBS_HOME/BBS-make-PROPAGATION_STATUS_DB.py
fi

# Generate the HTML report
$BBS_PYTHON_CMD $BBS_HOME/BBS-report.py simple-layout
REPORT_DIRNAME=$(dirname "$BBS_REPORT_PATH")
REPORT_BASENAME=$(basename "$BBS_REPORT_PATH")
cd "$REPORT_DIRNAME"
$BBS_TAR_CMD zcf "$REPORT_BASENAME.tgz" "$REPORT_BASENAME"
mv "$REPORT_BASENAME.tgz" "$BBS_REPORT_PATH"

# Publish it (no more --delete here, too dangerous!)
$BBS_RSYNC_CMD -ave 'ssh -o StrictHostKeyChecking=no' "$BBS_REPORT_PATH/" "$BBS_PUBLISHED_REPORT_DEST_DIR/"
5 changes: 5 additions & 0 deletions 3.18/bioc/kunpeng1/prerun.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

. ./config.sh

$BBS_PYTHON_CMD $BBS_HOME/BBS-prerun.py
12 changes: 12 additions & 0 deletions 3.18/bioc/kunpeng1/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

. ./config.sh

. $BBS_HOME/utils/clean-before-run.sh

$BBS_PYTHON_CMD $BBS_HOME/BBS-run.py

# We have to use brute force because some R processes might still be running
# in the background. This will kick out the user BBS is running as!
sleep 60 # wait 1 min before the kill
kill -9 -1
22 changes: 22 additions & 0 deletions nodes/kunpeng1/local-settings.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/usr/bin/env bash
# =========================================
# Local settings for kunpeng1 (Linux ARM64)
# =========================================


if [ -z "$BBS_HOME" ]; then
export BBS_HOME="/home/biocbuild/BBS"
fi

export BBS_PYTHON_CMD="/usr/bin/python3"

export BBS_SSH_CMD="/usr/bin/ssh"
export BBS_RSYNC_CMD="/usr/bin/rsync"

# Needed only on a node capable of running STAGE1 (STAGE1 is supported on
# Linux only)
#export BBS_SVN_CMD="/usr/bin/svn"
export BBS_TAR_CMD="/usr/bin/tar"
export BBS_GIT_CMD="/usr/bin/git"
export BBS_CURL_CMD="/usr/bin/curl"

7 changes: 6 additions & 1 deletion nodes/nodespecs.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,5 +58,10 @@
'Arch' : "x86_64",
'Platform': "x86_64-linux-gnu",
'pkgType' : "source",
'encoding': "utf_8"}
'encoding': "utf_8"},
'kunpeng1': {'OS' : "Linux (Ubuntu 22.04.1 LTS)",
'Arch' : "aarch64",
'Platform': "aarch64-linux-gnu",
'pkgType' : "source",
'encoding': "utf_8"},
}