|
| 1 | +# Also see documentation at https://github.com/EESSI/eessi-bot-software-layer/blob/main/README.md#step5.5 |
| 2 | + |
| 3 | +[github] |
| 4 | +# replace '123456' with the ID of your GitHub App |
| 5 | +app_id = 281041 |
| 6 | + |
| 7 | +# a short (!) name for your app instance that can be used for example |
| 8 | +# when adding/updating a comment to a PR |
| 9 | +# (!) a short yet descriptive name is preferred because it appears in |
| 10 | +# comments to the PR |
| 11 | +# for example, the name could include the name of the cluster the bot |
| 12 | +# runs on and the username which runs the bot |
| 13 | +# NOTE avoid putting an actual username here as it will be visible on |
| 14 | +# potentially publicly accessible GitHub pages. |
| 15 | +app_name = eessi-bot-citc-aws |
| 16 | + |
| 17 | +# replace '12345678' with the ID of the installation of your GitHub App |
| 18 | +# (can be derived by creating an event and then checking for the list |
| 19 | +# of sent events and its payload either via the Smee channel's web page |
| 20 | +# or via the Advanced section of your GitHub App on github.com) |
| 21 | +installation_id = 33078935 |
| 22 | + |
| 23 | +# path to the private key that was generated when the GitHub App was registered |
| 24 | +private_key = /mnt/shared/home/bot/eessi-bot-software-layer/eessi-bot-citc-aws-private-key.pem |
| 25 | + |
| 26 | + |
| 27 | +[buildenv] |
| 28 | +# name of the job script used for building an EESSI stack |
| 29 | +build_job_script = /mnt/shared/home/bot/eessi-bot-software-layer/scripts/bot-build.slurm |
| 30 | + |
| 31 | +# The container_cachedir may be used to reuse downloaded container image files |
| 32 | +# across jobs. Thus, jobs can more quickly launch containers. |
| 33 | +container_cachedir = /mnt/shared/home/bot/eessi-bot-software-layer/containers-cache-dir |
| 34 | + |
| 35 | +# it may happen that we need to customize some CVMFS configuration |
| 36 | +# the value of cvmfs_customizations is a dictionary which maps a file |
| 37 | +# name to an entry that needs to be added to that file |
| 38 | +cvmfs_customizations = {} |
| 39 | + |
| 40 | +# if compute nodes have no internet connection, we need to set http(s)_proxy |
| 41 | +# or commands such as pip3 cannot download software from package repositories |
| 42 | +# for example, the temporary EasyBuild is installed via pip3 first |
| 43 | +# http_proxy = http://PROXY_DNS:3128/ |
| 44 | +# https_proxy = http://PROXY_DNS:3128/ |
| 45 | + |
| 46 | +# directory under which the bot prepares directories per job |
| 47 | +# structure created is as follows: YYYY.MM/pr_PR_NUMBER/event_EVENT_ID/run_RUN_NUMBER/OS+SUBDIR |
| 48 | +jobs_base_dir = /mnt/shared/home/bot/eessi-bot-software-layer/jobs |
| 49 | + |
| 50 | +# configure environment |
| 51 | +# list of comma-separated modules to be loaded by build_job_script |
| 52 | +# useful/needed if some tool is not provided as system-wide package |
| 53 | +# (read by bot and handed over to build_job_script via parameter |
| 54 | +# --load-modules) |
| 55 | +load_modules = |
| 56 | + |
| 57 | +# PATH to temporary directory on build node ... ends up being used for |
| 58 | +# for example, EESSI_TMPDIR --> /tmp/$USER/EESSI |
| 59 | +# escaping variables with '\' delays expansion to the start of the |
| 60 | +# build_job_script; this can be used for referencing environment |
| 61 | +# variables that are only set inside a Slurm job |
| 62 | +local_tmp = /tmp/$USER/EESSI |
| 63 | + |
| 64 | +# parameters to be added to all job submissions |
| 65 | +# NOTE do not quote parameter string. Quotes are retained when reading in config and |
| 66 | +# then the whole 'string' is recognised as a single parameter. |
| 67 | +# NOTE 2 '--get-user-env' may be needed on systems where the job's environment needs |
| 68 | +# to be initialised as if it is for a login shell. |
| 69 | +# note: hardcoded 24h time limit until https://github.com/EESSI/eessi-bot-software-layer/issues/146 is fixed |
| 70 | +slurm_params = --hold --time=24:0:0 |
| 71 | + |
| 72 | +# full path to the job submission command |
| 73 | +submit_command = /usr/bin/sbatch |
| 74 | + |
| 75 | +# which GH account has the permission to trigger the build (by setting |
| 76 | +# the label 'bot:build' (apparently this cannot be restricted on GitHub) |
| 77 | +# if value is left/empty everyone can trigger the build |
| 78 | +# value can be a space delimited list of GH accounts |
| 79 | +build_permission = boegel trz42 bedroge |
| 80 | + |
| 81 | +[architecturetargets] |
| 82 | +# defines both for which architectures the bot will build |
| 83 | +# and what submission parameters shall be used |
| 84 | +# medium instances (8 cores, 16GB RAM) |
| 85 | +#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"} |
| 86 | +# larger instances (16 cores, 32GB RAM) |
| 87 | +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"} |
| 88 | + |
| 89 | +[repo_targets] |
| 90 | +# defines for which repository a arch_target should be build for |
| 91 | +# |
| 92 | +# only building for repository EESSI-pilot |
| 93 | +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"]} |
| 94 | + |
| 95 | +# points to definition of repositories (default EESSI-pilot defined by build container) |
| 96 | +repos_cfg_dir = /mnt/shared/home/bot/eessi-bot-software-layer/cfg-bundles |
| 97 | + |
| 98 | +# configuration for event handler which receives events from a GitHub repository. |
| 99 | +[event_handler] |
| 100 | +# path to the log file to log messages for event handler |
| 101 | +log_path = /mnt/shared/home/bot/eessi-bot-software-layer/eessi_bot_event_handler.log |
| 102 | + |
| 103 | + |
| 104 | +[job_manager] |
| 105 | +# path to the log file to log messages for job manager |
| 106 | +log_path = /mnt/shared/home/bot/eessi-bot-software-layer/eessi_bot_job_manager.log |
| 107 | + |
| 108 | +# directory where job manager stores information about jobs to be tracked |
| 109 | +# e.g. as symbolic link JOBID -> directory to job |
| 110 | +job_ids_dir = /mnt/shared/home/bot/eessi-bot-software-layer/jobs |
| 111 | + |
| 112 | +# full path to the job status checking command |
| 113 | +poll_command = /usr/bin/squeue |
| 114 | + |
| 115 | +# polling interval in seconds |
| 116 | +poll_interval = 60 |
| 117 | + |
| 118 | +# full path to the command for manipulating existing jobs |
| 119 | +scontrol_command = /usr/bin/scontrol |
| 120 | + |
| 121 | +[deploycfg] |
| 122 | +# script for uploading built software packages |
| 123 | +tarball_upload_script = /mnt/shared/home/bot/eessi-bot-software-layer/scripts/eessi-upload-to-staging |
| 124 | + |
| 125 | +# URL to S3/minio bucket |
| 126 | +# if attribute is set, bucket_base will be constructed as follows |
| 127 | +# bucket_base=${endpoint_url}/${bucket_name} |
| 128 | +# otherwise, bucket_base will be constructed as follows |
| 129 | +# bucket_base=https://${bucket_name}.s3.amazonaws.com |
| 130 | +# - The former variant is used for non AWS S3 services, eg, minio, or when |
| 131 | +# the bucket name is not provided in the hostname (see latter case). |
| 132 | +# - The latter variant is used for AWS S3 services. |
| 133 | +#endpoint_url = URL_TO_S3_SERVER |
| 134 | + |
| 135 | +# bucket name |
| 136 | +bucket_name = eessi-staging |
| 137 | + |
| 138 | +# upload policy: defines what policy is used for uploading built artefacts |
| 139 | +# to an S3 bucket |
| 140 | +# 'all' ..: upload all artefacts (mulitple uploads of the same artefact possible) |
| 141 | +# 'latest': for each build target (eessi-VERSION-{software,init,compat}-OS-ARCH) |
| 142 | +# only upload the latest built artefact |
| 143 | +# 'once' : only once upload any built artefact for the build target |
| 144 | +# 'none' : do not upload any built artefacts |
| 145 | +upload_policy = once |
| 146 | + |
| 147 | +# which GH account has the permission to trigger the deployment (by setting |
| 148 | +# the label 'bot:deploy' (apparently this cannot be restricted on GitHub) |
| 149 | +# if value is left/empty everyone can trigger the deployment |
| 150 | +# value can be a space delimited list of GH accounts |
| 151 | +deploy_permission = boegel trz42 bedroge |
0 commit comments