diff --git a/3.17/bioc/kunpeng1/config.sh b/3.17/bioc/kunpeng1/config.sh new file mode 100644 index 00000000..a109c0ab --- /dev/null +++ b/3.17/bioc/kunpeng1/config.sh @@ -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="webadmin@master.bioconductor.org:/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" + diff --git a/3.17/bioc/kunpeng1/postrun.sh b/3.17/bioc/kunpeng1/postrun.sh new file mode 100755 index 00000000..cbd6fbd6 --- /dev/null +++ b/3.17/bioc/kunpeng1/postrun.sh @@ -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/" diff --git a/3.17/bioc/kunpeng1/prerun.sh b/3.17/bioc/kunpeng1/prerun.sh new file mode 100755 index 00000000..4492df8b --- /dev/null +++ b/3.17/bioc/kunpeng1/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. ./config.sh + +$BBS_PYTHON_CMD $BBS_HOME/BBS-prerun.py diff --git a/3.17/bioc/kunpeng1/run.sh b/3.17/bioc/kunpeng1/run.sh new file mode 100755 index 00000000..9ebc0b88 --- /dev/null +++ b/3.17/bioc/kunpeng1/run.sh @@ -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 diff --git a/3.18/bioc/kunpeng1/config.sh b/3.18/bioc/kunpeng1/config.sh new file mode 100644 index 00000000..7caf7c87 --- /dev/null +++ b/3.18/bioc/kunpeng1/config.sh @@ -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="webadmin@master.bioconductor.org:/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" + + diff --git a/3.18/bioc/kunpeng1/postrun.sh b/3.18/bioc/kunpeng1/postrun.sh new file mode 100755 index 00000000..cbd6fbd6 --- /dev/null +++ b/3.18/bioc/kunpeng1/postrun.sh @@ -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/" diff --git a/3.18/bioc/kunpeng1/prerun.sh b/3.18/bioc/kunpeng1/prerun.sh new file mode 100755 index 00000000..4492df8b --- /dev/null +++ b/3.18/bioc/kunpeng1/prerun.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. ./config.sh + +$BBS_PYTHON_CMD $BBS_HOME/BBS-prerun.py diff --git a/3.18/bioc/kunpeng1/run.sh b/3.18/bioc/kunpeng1/run.sh new file mode 100755 index 00000000..9ebc0b88 --- /dev/null +++ b/3.18/bioc/kunpeng1/run.sh @@ -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 diff --git a/nodes/kunpeng1/local-settings.sh b/nodes/kunpeng1/local-settings.sh new file mode 100644 index 00000000..c3069302 --- /dev/null +++ b/nodes/kunpeng1/local-settings.sh @@ -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" + diff --git a/nodes/nodespecs.py b/nodes/nodespecs.py index 032d32c9..0fde21d5 100644 --- a/nodes/nodespecs.py +++ b/nodes/nodespecs.py @@ -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"}, }