Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
4e2f6d0
Move bash utils to new scripts dir, add new dir to tarball creation
huebner-m Dec 20, 2022
2caad9b
initial version of unified script
truib Jan 1, 2023
6f904ce
fix test syntax
truib Jan 1, 2023
d6aae8d
use array for EESSI_FUSE_MOUNTS, fix var name typo
truib Jan 1, 2023
4194421
add missing shift operations
truib Jan 1, 2023
8b2f730
fixing creation of temporary directory
truib Jan 1, 2023
6aa5cac
fix BIND typo, define SINGULARITY_BIND
truib Jan 1, 2023
3a2bf51
fix tmp dir for overlay fs
truib Jan 1, 2023
3fbea5e
fixing export bug, improving readability
truib Jan 2, 2023
84daaa3
moving cfg handling to separate file cfg_files.sh
truib Jan 3, 2023
95c6504
functions to process repository config file and use data in eessi_con…
truib Jan 3, 2023
f349b1a
small fixes and code style improvements
truib Jan 3, 2023
f1a583c
uncommented reading of config map
truib Jan 3, 2023
ff207f3
preparing config information for custom repository
truib Jan 4, 2023
b2543b9
fix source location for config files
truib Jan 4, 2023
3f16197
using correct repository paths
truib Jan 4, 2023
935517b
make repository cfg file path configurable
truib Jan 4, 2023
d28cc69
short section about eessi_container.sh
truib Jan 4, 2023
eca4f97
show which features are not yet implemented
truib Jan 4, 2023
5768978
adding support for resuming a previous session
truib Jan 5, 2023
bf90a48
improving message for tmp and resume option
truib Jan 5, 2023
6808ec5
first attempt at implementing --save option
truib Jan 6, 2023
efe93c7
added support for providing just a directory to deposit a tarball of tmp
truib Jan 6, 2023
f896c51
cleaning up code, making script more silent by default
truib Jan 6, 2023
b7b66b2
Merge branch 'main' of https://github.com/EESSI/software-layer into e…
truib Jan 15, 2023
2e66057
Fix hash for checkout action in README CI
truib Jan 15, 2023
5749181
Merge branch 'main' into move_bash_utils
boegel Jan 19, 2023
447bb2d
added a function to obtain full path to a tool
truib Jan 24, 2023
e2c24cf
partial bot/build.sh for eessi_container.sh
truib Jan 24, 2023
cdc018c
Merge branch 'main' of github.com:EESSI/software-layer into move_bash…
huebner-m Jan 25, 2023
8cac3df
Update of where utils.sh is located when sourcing
huebner-m Jan 25, 2023
3390a2d
Add create_directory_tarballs.sh to github CI
huebner-m Jan 25, 2023
70339ac
Merge branch 'move_bash_utils' of github.com:huebner-m/software-layer…
huebner-m Jan 25, 2023
a71f8e4
added function to determine IPv4 address
truib Jan 25, 2023
b5bf008
various updates for bot/build.sh and eessi_container.sh
truib Jan 25, 2023
b5c07ee
provide CVMFS_HTTP_PROXY if necessary
truib Jan 27, 2023
4ff3721
add functions to derive hostname and port number from proxy URL
truib Jan 27, 2023
7a58fbf
add function to determine config sections
truib Jan 27, 2023
a5ea7d8
add parameter to list repositories, fix bugs
truib Jan 27, 2023
6ed3d85
fix bash pattern matching operator
truib Jan 29, 2023
fd5cc3d
various updates to bot/build.sh
truib Jan 29, 2023
234bab3
Merge branch 'enhancement/bot-build-with-swl-216' of github-trz:trz42…
truib Jan 29, 2023
b2eab08
replace FILE with DIR in EESSI_REPOS_CFG_FILE_OVERRIDE
truib Jan 29, 2023
7663fbc
Merge branch 'main' of github-trz:eessi/software-layer into enhanceme…
truib Jan 29, 2023
7e200a1
fix whitespace issues
truib Jan 29, 2023
57b6f27
fix handling of HTTP(S)_PROXY settings
truib Jan 30, 2023
0b85bed
Merge branch 'main' into enhancement/unified_script_to_access_EESSI
boegel Feb 1, 2023
f513b12
Add CI test for the create_directory_tarballs.sh script
huebner-m Feb 2, 2023
e4702ee
Need to specify the EESSI version to test create_directory_tarballs
huebner-m Feb 2, 2023
c4b9cf5
Fix wildcard usage when building tarball of the scripts dir
huebner-m Feb 2, 2023
fce504f
include changes made to test PR for building with the bot
truib Feb 3, 2023
910d079
Merge branch 'nessi.no-2022.11-dev' into enhancement/bot-build-with-s…
trz42 Feb 3, 2023
ad2c322
Merge pull request #213 from huebner-m/move_bash_utils
boegel Feb 4, 2023
d964241
Merge branch 'main' of github-trz:EESSI/software-layer into enhanceme…
truib Feb 8, 2023
3a6fe0e
update location of utils.sh, uniform way to determine 'TOPDIR'
truib Feb 8, 2023
756b1b6
bump default container version
truib Feb 8, 2023
4c435ab
clarifying default value for repository arg
truib Feb 8, 2023
990ebda
move commands to install Apptainer in GitHub Actions Ubuntu VM to a s…
boegel Feb 8, 2023
3d143d8
add GitHub Actions workflow for testing eessi_container.sh script
boegel Feb 8, 2023
784a380
Merge branch 'enhancement/unified_script_to_access_EESSI' of github.c…
boegel Feb 8, 2023
5fe467a
stop script as soon as any command does non-zero exit + undefined env…
boegel Feb 8, 2023
57b8315
fix typo
boegel Feb 8, 2023
fba368d
comment out 'set -e -u' for now
boegel Feb 8, 2023
09feff7
rename --info to --verbose
boegel Feb 8, 2023
fe83f85
pin eessi/github-action-eessi by hash
boegel Feb 8, 2023
125bfa2
use exit code of container command in eessi_container.sh
boegel Feb 8, 2023
be3e399
replace RUN_SCRIPT_AND_ARGS with
truib Feb 8, 2023
0af2194
Merge branch 'enhancement/unified_script_to_access_EESSI' of github.c…
boegel Feb 8, 2023
27cbdf3
add checks for various use cases of eessi_container.sh script (+ no n…
boegel Feb 8, 2023
b34afca
commented dry-run option, moved verbose option in help msg
truib Feb 8, 2023
7d3818d
add checks for various use cases of eessi_container.sh script (+ no n…
boegel Feb 8, 2023
de60163
Merge branch 'enhancement/unified_script_to_access_EESSI' of github-t…
truib Feb 8, 2023
602aa68
fix check for './eessi_container.sh --resume'
boegel Feb 8, 2023
adcc655
fix small typos in grep commands
truib Feb 8, 2023
a11f1c0
Merge branch 'enhancement/unified_script_to_access_EESSI' of github-t…
truib Feb 8, 2023
7e47023
enable --verbose + add step to collect test env info
boegel Feb 10, 2023
a1bb7df
disable broken tests for eessi_container.sh script for now
boegel Feb 10, 2023
5e3a5b3
Merge pull request #216 from trz42/enhancement/unified_script_to_acce…
boegel Feb 10, 2023
b1a3635
added a function to obtain full path to a tool
truib Jan 24, 2023
27bc203
added function to determine IPv4 address
truib Jan 25, 2023
bfe6d36
various updates for bot/build.sh and eessi_container.sh
truib Feb 18, 2023
8372341
provide CVMFS_HTTP_PROXY if necessary
truib Feb 18, 2023
3f1aed9
add functions to derive hostname and port number from proxy URL
truib Jan 27, 2023
b7abfc6
add function to determine config sections
truib Jan 27, 2023
9b7b8a4
add parameter to list repositories, fix bugs
truib Feb 18, 2023
4a414f5
replace FILE with DIR in EESSI_REPOS_CFG_FILE_OVERRIDE
truib Feb 18, 2023
37abf4f
fix whitespace issues
truib Jan 29, 2023
d468a1a
include changes made to test PR for building with the bot
truib Feb 18, 2023
af658ee
fix issues in eessi_container.sh
truib Feb 3, 2023
eb66e1c
fix RUN_QUIET setting
truib Feb 4, 2023
1cb4674
improvements to resuming job environment
truib Feb 18, 2023
0c465da
address requested change
truib Feb 7, 2023
26ab98c
cleaning up leftovers after adding updates from NESSI
truib Feb 18, 2023
a44088e
moving cfg_files.sh to scripts dir
truib Feb 18, 2023
bbbad0d
improved handling of container cache + explicit pull of image
truib Feb 20, 2023
15ae58d
use VERBOSE instead of INFO
truib Feb 20, 2023
764e713
fix test for --list-repos; improve output for --list-repos
truib Feb 20, 2023
47cc1c6
implemented requested changes
truib Feb 21, 2023
7c418cd
Merge branch 'update_for_eessi_container_sh' of github-trz:trz42/soft…
trz42 Feb 22, 2023
712c40e
improvements to resuming job environment
trz42 Feb 22, 2023
16d9857
improved handling of container cache + explicit pull of image
trz42 Feb 22, 2023
9e8ca62
changed --info -> --verbose
trz42 Feb 22, 2023
c0350a9
improved messages for resume info and adjusted parsing in bot/build.sh
trz42 Feb 22, 2023
ef9a552
delete one of two tmp storage tarballs created by bot/build.sh
trz42 Feb 22, 2023
6974e4b
add verbose messages on pulling/copying/reusing of container image
boegel Feb 24, 2023
54bdea5
don't require --verbose for info message on pulling/copying/reusing c…
boegel Feb 24, 2023
a4cea9a
add check to make sure that container image exists in tmpdir
boegel Feb 24, 2023
c975832
fix determining filename from container URL
boegel Feb 24, 2023
7ea7058
Merge pull request #232 from trz42/update_for_eessi_container_sh
boegel Feb 24, 2023
1c0081d
Merge branch 'main' of github-trz:EESSI/software-layer into enhanceme…
trz42 Feb 24, 2023
7cc6575
support cmd line arg flag terminator
trz42 Feb 25, 2023
0def4e9
just print contents of cfg/job.cfg
trz42 Feb 24, 2023
ef608d1
switching from json (YQ) to ini (cfg_files.sh)
trz42 Feb 24, 2023
429d5a0
add --generic arg when running install script
trz42 Feb 23, 2023
bd31faa
fix error in regex
trz42 Feb 23, 2023
1bafb78
use command separator --
trz42 Feb 23, 2023
c9041e3
try fixing arg issue
trz42 Feb 24, 2023
9d46a22
put build args into an array
trz42 Feb 24, 2023
ff5045f
use array to define args for build and tarball step
trz42 Feb 25, 2023
d08bd21
addressed comments and changes requested by first review
trz42 Mar 7, 2023
54d2a21
improved usage information
trz42 Mar 8, 2023
64d1866
fix bug, env var PWD is uppercase
trz42 Mar 11, 2023
ff78c62
make sure that CPU arch specific directories are used as container ca…
truib Mar 15, 2023
25943f5
Merge pull request #233 from trz42/enhancement/bot-build-with-eessi-c…
boegel Mar 17, 2023
6299c9b
add configuration file for production build-and-deploy bot in AWS Cit…
boegel Mar 17, 2023
32cfd13
Merge pull request #240 from boegel/bot_cfg
trz42 Mar 17, 2023
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
135 changes: 135 additions & 0 deletions .github/workflows/test_eessi_container_script.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
name: Tests for eessi_container.sh script
on: [push, pull_request, workflow_dispatch]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
eessi_container_script:
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
SCRIPT_TEST:
- help
- listrepos_default
- listrepos_custom
- run
- shell
- container
- resume
# FIXME disabled because '--access rw' is not working in CI environment
#- readwrite
#- save
steps:
- name: Check out software-layer repository
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0

- name: install Apptainer
run: |
./install_apptainer_ubuntu.sh

- name: Collect info on test environment
run: |
mount
df -h

- name: Test eessi_container.sh script
run: |
test_cmd="cat /etc/os-release"
out_pattern="Debian GNU/Linux 11"

if [[ ${{matrix.SCRIPT_TEST}} == 'help' ]]; then
./eessi_container.sh --help

# test use of --list-repos without custom repos.cfg
elif [[ ${{matrix.SCRIPT_TEST}} == 'listrepos_default' ]]; then
outfile=out_listrepos.txt
./eessi_container.sh --verbose --list-repos | tee ${outfile}
grep "EESSI-pilot" ${outfile}

# test use of --list-repos with custom repos.cfg
elif [[ ${{matrix.SCRIPT_TEST}} == 'listrepos_custom' ]]; then
outfile=out_listrepos.txt
outfile2=out_listrepos_2.txt
mkdir -p ${PWD}/cfg
echo "[EESSI/20AB.CD]" > cfg/repos.cfg
echo "repo_version = 20AB.CD" >> cfg/repos.cfg
echo "[EESSI/20HT.TP]" >> cfg/repos.cfg
echo "repo_version = 20HT.TP" >> cfg/repos.cfg
./eessi_container.sh --verbose --list-repos | tee ${outfile}
grep "EESSI-pilot" ${outfile}

export EESSI_REPOS_CFG_DIR_OVERRIDE=${PWD}/cfg
./eessi_container.sh --verbose --list-repos | tee ${outfile2}
grep "[EESSI/2023.02]" ${outfile2}

# test use of --mode run
elif [[ ${{matrix.SCRIPT_TEST}} == 'run' ]]; then
outfile=out_run.txt
echo "${test_cmd}" > test_script.sh
chmod u+x test_script.sh
export SINGULARITY_BIND="$PWD:/test"
./eessi_container.sh --verbose --mode run /test/test_script.sh | tee ${outfile}
grep "${out_pattern}" ${outfile}

# test use of --mode shell
elif [[ ${{matrix.SCRIPT_TEST}} == 'shell' ]]; then
outfile=out_shell.txt
./eessi_container.sh --verbose --mode shell <<< "${test_cmd}" 2>&1 | tee ${outfile}
grep "${out_pattern}" ${outfile}

# test use of --container option, using a totally different container;
# cfr. https://github.com/easybuilders/easybuild-containers
elif [[ ${{matrix.SCRIPT_TEST}} == 'container' ]]; then
outfile=out_container.txt
container="docker://ghcr.io/eessi/build-node:debian10"
./eessi_container.sh --verbose --container ${container} --mode shell <<< "${test_cmd}" 2>&1 | tee ${outfile}
grep "Debian GNU/Linux 10" ${outfile}

# test use of '--access rw' to get write access in container
elif [[ ${{matrix.SCRIPT_TEST}} == 'readwrite' ]]; then
outfile=out_readwrite.txt
fn="test_${RANDOM}.txt"
echo "touch /cvmfs/pilot.eessi-hpc.org/${fn}" > test_script.sh
chmod u+x test_script.sh
export SINGULARITY_BIND="$PWD:/test"
./eessi_container.sh --verbose --access rw --mode run /test/test_script.sh > ${outfile}

tmpdir=$(grep "\-\-resume" ${outfile} | sed "s/.*--resume \([^']*\).*/\1/g")
# note: must use '--access rw' again here, since touched file is in overlay upper dir
./eessi_container.sh --verbose --resume ${tmpdir} --access rw --mode shell <<< "ls -l /cvmfs/pilot.eessi-hpc.org/${fn}" > ${outfile}
grep "/cvmfs/pilot.eessi-hpc.org/${fn}$" $outfile

# test use of --resume
elif [[ ${{matrix.SCRIPT_TEST}} == 'resume' ]]; then
outfile=out_resume.txt
./eessi_container.sh --verbose --mode shell <<< "${test_cmd}" > ${outfile}

tmpdir=$(grep "\-\-resume" ${outfile} | sed "s/.*--resume \([^']*\).*/\1/g")
rm -f ${outfile}

# make sure that container image exists
test -f ${tmpdir}/ghcr.io_eessi_build_node_debian11.sif || (echo "Container image not found in ${tmpdir}" >&2 && ls ${tmpdir} && exit 1)

./eessi_container.sh --verbose --resume ${tmpdir} --mode shell <<< "${test_cmd}" > ${outfile}
cat ${outfile}
grep "Resuming from previous run using temporary storage at ${tmpdir}" ${outfile}
grep "${out_pattern}" ${outfile}

# test use of --save (+ --resume)
elif [[ ${{matrix.SCRIPT_TEST}} == 'save' ]]; then
outfile=out_save.txt
fn="test_${RANDOM}.txt"
test_cmd="touch /cvmfs/pilot.eessi-hpc.org/${fn}"
./eessi_container.sh --verbose --mode shell --access rw --save test-save.tar <<< "${test_cmd}" 2>&1 | tee ${outfile}
rm -f ${outfile}

./eessi_container.sh --verbose --mode shell --access rw --resume test-save.tar <<< "ls -l /cvmfs/pilot.eessi-hpc.org/${fn}" > ${outfile}
grep "/cvmfs/pilot.eessi-hpc.org/${fn}$" $outfile

tar tfv test-save.tar | grep "overlay-upper/${fn}"

else
echo "Unknown test case: ${{matrix.SCRIPT_TEST}}" >&2
exit 1
fi
27 changes: 15 additions & 12 deletions .github/workflows/tests_scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ on:
- build_container.sh
- install_software_layer.sh
- run_in_compat_layer_env.sh
- utils.sh
- scripts/utils.sh
- update_lmod_cache.sh
- create_directory_tarballs.sh

pull_request:
branches:
Expand All @@ -16,8 +17,9 @@ on:
- build_container.sh
- install_software_layer.sh
- run_in_compat_layer_env.sh
- utils.sh
- scripts/utils.sh
- update_lmod_cache.sh
- create_directory_tarballs.sh
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
Expand All @@ -27,18 +29,9 @@ jobs:
- name: checkout
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0

# see https://github.com/apptainer/singularity/issues/5390#issuecomment-899111181
- name: install Apptainer
run: |
sudo apt-get install alien
alien --version
apptainer_rpm=$(curl --silent -L https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/a/ | grep 'apptainer-[0-9]' | sed 's/.*\(apptainer[0-9._a-z-]*.rpm\).*/\1/g')
curl -OL https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/a/$apptainer_rpm
sudo alien -d $apptainer_rpm
sudo apt install ./apptainer*.deb
apptainer --version
# also check whether 'singularity' command is still provided by Apptainer installation
singularity --version
./install_apptainer_ubuntu.sh

- name: test install_software_layer.sh script
run: |
Expand All @@ -49,3 +42,13 @@ jobs:
# force using x86_64/generic, to avoid triggering an installation from scratch
sed -i "s@./EESSI-pilot-install-software.sh@\"export EESSI_SOFTWARE_SUBDIR_OVERRIDE='x86_64/generic'; ./EESSI-pilot-install-software.sh\"@g" install_software_layer.sh
./build_container.sh run /tmp/$USER/EESSI /tmp/install_software_layer.sh

- name: test create_directory_tarballs.sh script
run: |
# scripts need to be copied to /tmp,
# since create_directory_tarballs.sh must be accessible from within build container
cp -a * /tmp/
cd /tmp
./build_container.sh run /tmp/$USER/EESSI /tmp/create_directory_tarballs.sh 2021.12
# check if tarballs have been produced
ls -l *.tar.gz
2 changes: 1 addition & 1 deletion EESSI-pilot-install-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ set -- "${POSITIONAL_ARGS[@]}"

TOPDIR=$(dirname $(realpath $0))

source $TOPDIR/utils.sh
source $TOPDIR/scripts/utils.sh

# honor $TMPDIR if it is already defined, use /tmp otherwise
if [ -z $TMPDIR ]; then
Expand Down
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@ Environment set up to use EESSI pilot software stack, have fun!
[EESSI pilot 2021.12] $
```

### Accessing EESSI via a container

You need Singularity version 3.7 or newer. Then, simply run

```
$ ./eessi_container.sh
```
Once you get presented the prompt `Singularity>` run the above `source` command.

If you want to build a package for the software repository, simply add the arguments `--access rw`, e.g., full command would be

```
$ ./eessi_container.sh --access rw
```
Note, not all features/arguments listed via `./eessi_container.sh --help` are implemented.

# License

The software in this repository is distributed under the terms of the
Expand Down
151 changes: 151 additions & 0 deletions bot/bot-eessi-aws-citc.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Also see documentation at https://github.com/EESSI/eessi-bot-software-layer/blob/main/README.md#step5.5

[github]
# replace '123456' with the ID of your GitHub App
app_id = 281041

# a short (!) name for your app instance that can be used for example
# when adding/updating a comment to a PR
# (!) a short yet descriptive name is preferred because it appears in
# comments to the PR
# for example, the name could include the name of the cluster the bot
# runs on and the username which runs the bot
# NOTE avoid putting an actual username here as it will be visible on
# potentially publicly accessible GitHub pages.
app_name = eessi-bot-citc-aws

# replace '12345678' with the ID of the installation of your GitHub App
# (can be derived by creating an event and then checking for the list
# of sent events and its payload either via the Smee channel's web page
# or via the Advanced section of your GitHub App on github.com)
installation_id = 33078935

# path to the private key that was generated when the GitHub App was registered
private_key = /mnt/shared/home/bot/eessi-bot-software-layer/eessi-bot-citc-aws-private-key.pem


[buildenv]
# name of the job script used for building an EESSI stack
build_job_script = /mnt/shared/home/bot/eessi-bot-software-layer/scripts/bot-build.slurm

# The container_cachedir may be used to reuse downloaded container image files
# across jobs. Thus, jobs can more quickly launch containers.
container_cachedir = /mnt/shared/home/bot/eessi-bot-software-layer/containers-cache-dir

# it may happen that we need to customize some CVMFS configuration
# the value of cvmfs_customizations is a dictionary which maps a file
# name to an entry that needs to be added to that file
cvmfs_customizations = {}

# if compute nodes have no internet connection, we need to set http(s)_proxy
# or commands such as pip3 cannot download software from package repositories
# for example, the temporary EasyBuild is installed via pip3 first
# http_proxy = http://PROXY_DNS:3128/
# https_proxy = http://PROXY_DNS:3128/

# directory under which the bot prepares directories per job
# structure created is as follows: YYYY.MM/pr_PR_NUMBER/event_EVENT_ID/run_RUN_NUMBER/OS+SUBDIR
jobs_base_dir = /mnt/shared/home/bot/eessi-bot-software-layer/jobs

# configure environment
# list of comma-separated modules to be loaded by build_job_script
# useful/needed if some tool is not provided as system-wide package
# (read by bot and handed over to build_job_script via parameter
# --load-modules)
load_modules =

# PATH to temporary directory on build node ... ends up being used for
# for example, EESSI_TMPDIR --> /tmp/$USER/EESSI
# escaping variables with '\' delays expansion to the start of the
# build_job_script; this can be used for referencing environment
# variables that are only set inside a Slurm job
local_tmp = /tmp/$USER/EESSI

# parameters to be added to all job submissions
# NOTE do not quote parameter string. Quotes are retained when reading in config and
# then the whole 'string' is recognised as a single parameter.
# NOTE 2 '--get-user-env' may be needed on systems where the job's environment needs
# to be initialised as if it is for a login shell.
# note: hardcoded 24h time limit until https://github.com/EESSI/eessi-bot-software-layer/issues/146 is fixed
slurm_params = --hold --time=24:0:0

# full path to the job submission command
submit_command = /usr/bin/sbatch

# which GH account has the permission to trigger the build (by setting
# the label 'bot:build' (apparently this cannot be restricted on GitHub)
# if value is left/empty everyone can trigger the build
# value can be a space delimited list of GH accounts
build_permission = boegel trz42 bedroge

[architecturetargets]
# defines both for which architectures the bot will build
# and what submission parameters shall be used
# medium instances (8 cores, 16GB RAM)
#arch_target_map = { "linux/x86_64/generic" : "--constraint shape=c4.4xlarge", "linux/x86_64/intel/haswell" : "--constraint shape=c4.4xlarge", "linux/x86_64/intel/skylake_avx512" : "--constraint shape=c5.4xlarge", "linux/x86_64/amd/zen2": "--constraint shape=c5a.4xlarge", "linux/x86_64/amd/zen3" : "--constraint shape=c6a.4xlarge", "linux/aarch64/generic" : "--constraint shape=c6g.4xlarge", "linux/aarch64/graviton2" : "--constraint shape=c6g.4xlarge", "linux/aarch64/graviton3" : "--constraint shape=c7g.4xlarge"}
# larger instances (16 cores, 32GB RAM)
arch_target_map = { "linux/x86_64/generic" : "--constraint shape=c4.4xlarge", "linux/x86_64/intel/haswell" : "--constraint shape=c4.4xlarge", "linux/x86_64/intel/skylake_avx512" : "--constraint shape=c5.4xlarge", "linux/x86_64/amd/zen2": "--constraint shape=c5a.4xlarge", "linux/x86_64/amd/zen3" : "--constraint shape=c6a.4xlarge", "linux/aarch64/generic" : "--constraint shape=c6g.4xlarge", "linux/aarch64/graviton2" : "--constraint shape=c6g.4xlarge", "linux/aarch64/graviton3" : "--constraint shape=c7g.4xlarge"}

[repo_targets]
# defines for which repository a arch_target should be build for
#
# only building for repository EESSI-pilot
repo_target_map = { "linux/x86_64/generic" : ["EESSI-pilot"], "linux/x86_64/intel/haswell" : ["EESSI-pilot"], "linux/x86_64/intel/skylake_avx512" : ["EESSI-pilot"], "linux/x86_64/amd/zen2": ["EESSI-pilot"], "linux/x86_64/amd/zen3" : ["EESSI-pilot"], "linux/aarch64/generic" : ["EESSI-pilot"], "linux/aarch64/graviton2" : ["EESSI-pilot"], "linux/aarch64/graviton3" : ["EESSI-pilot"]}

# points to definition of repositories (default EESSI-pilot defined by build container)
repos_cfg_dir = /mnt/shared/home/bot/eessi-bot-software-layer/cfg-bundles

# configuration for event handler which receives events from a GitHub repository.
[event_handler]
# path to the log file to log messages for event handler
log_path = /mnt/shared/home/bot/eessi-bot-software-layer/eessi_bot_event_handler.log


[job_manager]
# path to the log file to log messages for job manager
log_path = /mnt/shared/home/bot/eessi-bot-software-layer/eessi_bot_job_manager.log

# directory where job manager stores information about jobs to be tracked
# e.g. as symbolic link JOBID -> directory to job
job_ids_dir = /mnt/shared/home/bot/eessi-bot-software-layer/jobs

# full path to the job status checking command
poll_command = /usr/bin/squeue

# polling interval in seconds
poll_interval = 60

# full path to the command for manipulating existing jobs
scontrol_command = /usr/bin/scontrol

[deploycfg]
# script for uploading built software packages
tarball_upload_script = /mnt/shared/home/bot/eessi-bot-software-layer/scripts/eessi-upload-to-staging

# URL to S3/minio bucket
# if attribute is set, bucket_base will be constructed as follows
# bucket_base=${endpoint_url}/${bucket_name}
# otherwise, bucket_base will be constructed as follows
# bucket_base=https://${bucket_name}.s3.amazonaws.com
# - The former variant is used for non AWS S3 services, eg, minio, or when
# the bucket name is not provided in the hostname (see latter case).
# - The latter variant is used for AWS S3 services.
#endpoint_url = URL_TO_S3_SERVER

# bucket name
bucket_name = eessi-staging

# upload policy: defines what policy is used for uploading built artefacts
# to an S3 bucket
# 'all' ..: upload all artefacts (mulitple uploads of the same artefact possible)
# 'latest': for each build target (eessi-VERSION-{software,init,compat}-OS-ARCH)
# only upload the latest built artefact
# 'once' : only once upload any built artefact for the build target
# 'none' : do not upload any built artefacts
upload_policy = once

# which GH account has the permission to trigger the deployment (by setting
# the label 'bot:deploy' (apparently this cannot be restricted on GitHub)
# if value is left/empty everyone can trigger the deployment
# value can be a space delimited list of GH accounts
deploy_permission = boegel trz42 bedroge
Loading