Skip to content

Commit a6b5bde

Browse files
committed
update bot configuration for EESSI 2023.06
1 parent 2f6709f commit a6b5bde

File tree

1 file changed

+116
-33
lines changed

1 file changed

+116
-33
lines changed

bot/bot-eessi-aws-citc.cfg

Lines changed: 116 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,23 @@ app_name = eessi-bot-citc-aws
2121
installation_id = 33078935
2222

2323
# 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
24+
private_key = /mnt/shared/home/bot/eessi-bot-software-layer/eessi-bot-citc-aws.2023-01-12.private-key.pem
25+
26+
27+
[bot_control]
28+
# which GH accounts have the permission to send commands to the bot
29+
# if value is left/empty everyone can send commands
30+
# value can be a space delimited list of GH accounts
31+
command_permission = boegel trz42 bedroge
32+
33+
# format of the response when processing bot commands
34+
command_response_fmt =
35+
<details><summary>Updates by the bot instance <code>{app_name}</code>
36+
<em>(click for details)</em></summary>
37+
38+
{comment_response}
39+
{comment_result}
40+
</details>
2541

2642

2743
[buildenv]
@@ -35,7 +51,7 @@ container_cachedir = /mnt/shared/home/bot/eessi-bot-software-layer/containers-ca
3551
# it may happen that we need to customize some CVMFS configuration
3652
# the value of cvmfs_customizations is a dictionary which maps a file
3753
# name to an entry that needs to be added to that file
38-
cvmfs_customizations = {}
54+
# cvmfs_customizations = {}
3955

4056
# if compute nodes have no internet connection, we need to set http(s)_proxy
4157
# or commands such as pip3 cannot download software from package repositories
@@ -52,7 +68,7 @@ jobs_base_dir = /mnt/shared/home/bot/eessi-bot-software-layer/jobs
5268
# useful/needed if some tool is not provided as system-wide package
5369
# (read by bot and handed over to build_job_script via parameter
5470
# --load-modules)
55-
load_modules =
71+
# load_modules =
5672

5773
# PATH to temporary directory on build node ... ends up being used for
5874
# for example, EESSI_TMPDIR --> /tmp/$USER/EESSI
@@ -78,22 +94,93 @@ submit_command = /usr/bin/sbatch
7894
# value can be a space delimited list of GH accounts
7995
build_permission = boegel trz42 bedroge
8096

97+
# template for comment when user who set a label has no permission to trigger build jobs
98+
no_build_permission_comment = Label `bot:build` has been set by user `{build_labeler}`, but only users `{build_permission_users}` have permission to trigger the action
99+
100+
101+
[deploycfg]
102+
# script for uploading built software packages
103+
tarball_upload_script = /mnt/shared/home/bot/eessi-bot-software-layer/scripts/eessi-upload-to-staging
104+
105+
# URL to S3/minio bucket
106+
# if attribute is set, bucket_base will be constructed as follows
107+
# bucket_base=${endpoint_url}/${bucket_name}
108+
# otherwise, bucket_base will be constructed as follows
109+
# bucket_base=https://${bucket_name}.s3.amazonaws.com
110+
# - The former variant is used for non AWS S3 services, eg, minio, or when
111+
# the bucket name is not provided in the hostname (see latter case).
112+
# - The latter variant is used for AWS S3 services.
113+
# endpoint_url = URL_TO_S3_SERVER
114+
115+
# bucket name
116+
bucket_name = eessi-staging
117+
118+
# upload policy: defines what policy is used for uploading built artefacts
119+
# to an S3 bucket
120+
# 'all' ..: upload all artefacts (mulitple uploads of the same artefact possible)
121+
# 'latest': for each build target (eessi-VERSION-{software,init,compat}-OS-ARCH)
122+
# only upload the latest built artefact
123+
# 'once' : only once upload any built artefact for the build target
124+
# 'none' : do not upload any built artefacts
125+
upload_policy = once
126+
127+
# which GH account has the permission to trigger the deployment (by setting
128+
# the label 'bot:deploy' (apparently this cannot be restricted on GitHub)
129+
# if value is left/empty everyone can trigger the deployment
130+
# value can be a space delimited list of GH accounts
131+
deploy_permission = boegel trz42 bedroge
132+
133+
# template for comment when user who set a label has no permission to trigger deploying tarballs
134+
no_deploy_permission_comment = Label `bot:deploy` has been set by user `{deploy_labeler}`, but only users `{deploy_permission_users}` have permission to trigger the action
135+
136+
81137
[architecturetargets]
82138
# defines both for which architectures the bot will build
83139
# and what submission parameters shall be used
140+
# 5 c4.2xlarge haswell 8 vCPU, 15 GiB RAM (1 + generic)
141+
# 2 c4.4xlarge haswell 16 vCPU, 30 GiB RAM
142+
# 5 c5.2xlarge skylake_avx512 8 vCPU, 16 GiB RAM (1)
143+
# 1 c5.4xlarge skylake_avx512 16 vCPU, 32 GiB RAM
144+
# 5 c5a.2xlarge zen2 8 vCPU, 16 GiB RAM (1)
145+
# 1 c5a.4xlarge zen2 16 vCPU, 32 GiB RAM
146+
# 5 c5d.2xlarge skylake_avx512 8 vCPU, 16 GiB RAM + 200 GB NVMe
147+
# 5 c6a.2xlarge zen3 8 vCPU, 16 GiB RAM (1)
148+
# 1 c6a.4xlarge zen3 16 vCPU, 32 GiB RAM
149+
# 5 c6g.2xlarge graviton2 8 vCPU, 16 GiB RAM (1 + generic)
150+
# 2 c6g.4xlarge graviton2 16 vCPU, 32 GiB RAM
151+
# 1 c6g.8xlarge graviton2 32 vCPU, 64 GiB RAM
152+
# 1 c6i.2xlarge cascadelake 8 vCPU, 16 GiB RAM (1)
153+
# 5 c7g.2xlarge graviton3 8 vCPU, 16 GiB RAM (1)
154+
# 1 c7g.4xlarge graviton3 16 vCPU, 32 GiB RAM
84155
# medium instances (8 cores, 16GB RAM)
85156
#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"}
86157
# 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"}
158+
arch_target_map = {
159+
"linux/x86_64/generic" : "--constraint shape=c4.4xlarge",
160+
"linux/x86_64/intel/haswell" : "--constraint shape=c4.4xlarge",
161+
"linux/x86_64/intel/skylake_avx512" : "--constraint shape=c5.4xlarge",
162+
"linux/x86_64/amd/zen2": "--constraint shape=c5a.4xlarge",
163+
"linux/x86_64/amd/zen3" : "--constraint shape=c6a.4xlarge",
164+
"linux/aarch64/generic" : "--constraint shape=c6g.4xlarge",
165+
"linux/aarch64/graviton2" : "--constraint shape=c6g.4xlarge",
166+
"linux/aarch64/graviton3" : "--constraint shape=c7g.4xlarge" }
88167

89168
[repo_targets]
90169
# defines for which repository a arch_target should be build for
91170
#
92171
# 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"]}
172+
repo_target_map = {
173+
"linux/x86_64/generic" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
174+
"linux/x86_64/intel/haswell" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
175+
"linux/x86_64/intel/skylake_avx512" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
176+
"linux/x86_64/amd/zen2" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
177+
"linux/x86_64/amd/zen3" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
178+
"linux/aarch64/generic" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
179+
"linux/aarch64/graviton2" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"],
180+
"linux/aarch64/graviton3" : ["eessi-2021.12","eessi-2023.04","eessi-2023.06-compat","eessi-2023.06-software"] }
94181

95182
# 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
183+
repos_cfg_dir = /mnt/shared/home/bot/eessi-bot-software-layer/repos
97184

98185
# configuration for event handler which receives events from a GitHub repository.
99186
[event_handler]
@@ -118,34 +205,30 @@ poll_interval = 60
118205
# full path to the command for manipulating existing jobs
119206
scontrol_command = /usr/bin/scontrol
120207

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
124208

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
209+
# variable 'comment' under 'submitted_job_comments' should not be changed as there are regular expression patterns matching it
210+
[submitted_job_comments]
211+
initial_comment = New job on instance `{app_name}` for architecture `{arch_name}` for repository `{repo_id}` in job dir `{symlink}`
212+
awaits_release = job id `{job_id}` awaits release by job manager
134213

135-
# bucket name
136-
bucket_name = eessi-staging
137214

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
215+
[new_job_comments]
216+
awaits_launch = job awaits launch by Slurm scheduler
146217

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
218+
219+
[running_job_comments]
220+
running_job = job `{job_id}` is running
221+
222+
223+
[finished_job_comments]
224+
success = :grin: SUCCESS tarball `{tarball_name}` ({tarball_size} GiB) in job dir
225+
failure = :cry: FAILURE
226+
no_slurm_out = No slurm output `{slurm_out}` in job dir
227+
slurm_out = Found slurm output `{slurm_out}` in job dir
228+
missing_modules = Slurm output lacks message "No missing modules!".
229+
no_tarball_message = Slurm output lacks message about created tarball.
230+
no_matching_tarball = No tarball matching `{tarball_pattern}` found in job dir.
231+
multiple_tarballs = Found {num_tarballs} tarballs in job dir - only 1 matching `{tarball_pattern}` expected.
232+
job_result_comment_fmt = <details><summary>{summary} _(click triangle for detailed information)_</summary>Details:{details}<br/>Artefacts:{artefacts}</details>
233+
job_result_details_item_fmt = <br/>&nbsp;&nbsp;&nbsp;&nbsp;{item}
234+
job_result_artefacts_item_fmt = <li><code>{item}</code></li>

0 commit comments

Comments
 (0)