From af6c2a63616aa4a5b9c4d59627dd3c8127f01410 Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Mon, 16 Jan 2023 15:25:23 +0200 Subject: [PATCH 1/6] Add a Linux ARM64 builder node Name: kunpeng1 Signed-off-by: Martin Tzvetanov Grigorov --- 3.17/bioc/kunpeng1/config.sh | 33 ++++++++++++++++++++++++++++++++ 3.17/bioc/kunpeng1/run.sh | 12 ++++++++++++ nodes/kunpeng1/local-settings.sh | 21 ++++++++++++++++++++ nodes/nodespecs.py | 7 ++++++- 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 3.17/bioc/kunpeng1/config.sh create mode 100755 3.17/bioc/kunpeng1/run.sh create mode 100644 nodes/kunpeng1/local-settings.sh diff --git a/3.17/bioc/kunpeng1/config.sh b/3.17/bioc/kunpeng1/config.sh new file mode 100644 index 00000000..f207ad22 --- /dev/null +++ b/3.17/bioc/kunpeng1/config.sh @@ -0,0 +1,33 @@ +#!/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_RSH_CMD="ssh -F /home/biocbuild/.ssh/config" +export BBS_CENTRAL_ROOT_URL="http://155.52.207.165" +export BBS_PRODUCT_TRANSMISSION_MODE="asynchronous" + + + +# Shared settings (by all Unix nodes). + +wd0=$(pwd) +cd .. +. ./config.sh +cd "$wd0" 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/nodes/kunpeng1/local-settings.sh b/nodes/kunpeng1/local-settings.sh new file mode 100644 index 00000000..f5fd9fa0 --- /dev/null +++ b/nodes/kunpeng1/local-settings.sh @@ -0,0 +1,21 @@ +#!/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" + 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"}, } From 38f3a64e0b17aa3d9d2cb46901caf83caa3bb9cc Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Mon, 23 Jan 2023 10:55:35 +0200 Subject: [PATCH 2/6] Add prerun.sh and postrun.sh for kunpeng1 The files are copied from nebbiolo1. According to https://github.com/Bioconductor/BBS/blob/master/Doc/Prepare-Ubuntu-20.04-HOWTO.md#25-add-software-builds-to-biocbuilds-crontab those should be added to crontab. But for some reason only nebbiolo1 have them. All other builder don't have these scripts Signed-off-by: Martin Tzvetanov Grigorov --- 3.17/bioc/kunpeng1/postrun.sh | 44 +++++++++++++++++++++++++++++++++++ 3.17/bioc/kunpeng1/prerun.sh | 5 ++++ 2 files changed, 49 insertions(+) create mode 100755 3.17/bioc/kunpeng1/postrun.sh create mode 100755 3.17/bioc/kunpeng1/prerun.sh 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 From 7ee43519ebbe83a2f98c95b2733a04b78925edc3 Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Fri, 27 Jan 2023 15:06:44 +0200 Subject: [PATCH 3/6] Convert kunpeng1's config.sh to be for standalone runs For the time being kunpeng1 won't be used as a secondary builder Signed-off-by: Martin Tzvetanov Grigorov --- 3.17/bioc/kunpeng1/config.sh | 39 ++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/3.17/bioc/kunpeng1/config.sh b/3.17/bioc/kunpeng1/config.sh index f207ad22..a109c0ab 100644 --- a/3.17/bioc/kunpeng1/config.sh +++ b/3.17/bioc/kunpeng1/config.sh @@ -18,9 +18,11 @@ export BBS_NB_CPU=8 # 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="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://155.52.207.165" +export BBS_CENTRAL_ROOT_URL="http://$BBS_CENTRAL_RHOST" export BBS_PRODUCT_TRANSMISSION_MODE="asynchronous" @@ -31,3 +33,36 @@ 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" + From 5e1c680d97eeb51fdfab646bce5a2b847e326e45 Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Thu, 11 May 2023 16:20:10 +0300 Subject: [PATCH 4/6] Add config for kunpeng1 for BBS 3.18 Signed-off-by: Martin Tzvetanov Grigorov --- 3.18/bioc/kunpeng1/config.sh | 71 +++++++++++++++++++++++++++++++++++ 3.18/bioc/kunpeng1/postrun.sh | 44 ++++++++++++++++++++++ 3.18/bioc/kunpeng1/prerun.sh | 5 +++ 3.18/bioc/kunpeng1/run.sh | 12 ++++++ 4 files changed, 132 insertions(+) create mode 100644 3.18/bioc/kunpeng1/config.sh create mode 100755 3.18/bioc/kunpeng1/postrun.sh create mode 100755 3.18/bioc/kunpeng1/prerun.sh create mode 100755 3.18/bioc/kunpeng1/run.sh diff --git a/3.18/bioc/kunpeng1/config.sh b/3.18/bioc/kunpeng1/config.sh new file mode 100644 index 00000000..43b40a18 --- /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/R-devel_2023-03-12_r83975-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 From d8dd91f377971b413bb0deb05a07fb152564788e Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Fri, 12 May 2023 11:43:12 +0300 Subject: [PATCH 5/6] Update R to 4.3.0 final for kunpeng1 (Linux ARM64) Signed-off-by: Martin Tzvetanov Grigorov --- 3.18/bioc/kunpeng1/config.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3.18/bioc/kunpeng1/config.sh b/3.18/bioc/kunpeng1/config.sh index 43b40a18..7caf7c87 100644 --- a/3.18/bioc/kunpeng1/config.sh +++ b/3.18/bioc/kunpeng1/config.sh @@ -12,7 +12,7 @@ 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/R-devel_2023-03-12_r83975-bin" +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 From fab0d17b6aa25ceb47d6c17f4a484b4d16354168 Mon Sep 17 00:00:00 2001 From: Martin Tzvetanov Grigorov Date: Fri, 2 Jun 2023 14:00:23 +0300 Subject: [PATCH 6/6] Add BBS_CURL_CMD for kunpeng1 Signed-off-by: Martin Tzvetanov Grigorov --- nodes/kunpeng1/local-settings.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/nodes/kunpeng1/local-settings.sh b/nodes/kunpeng1/local-settings.sh index f5fd9fa0..c3069302 100644 --- a/nodes/kunpeng1/local-settings.sh +++ b/nodes/kunpeng1/local-settings.sh @@ -18,4 +18,5 @@ export BBS_RSYNC_CMD="/usr/bin/rsync" #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"