Skip to content

Commit bd2ecab

Browse files
Add site configs and harden portal handling
Signed-off-by: Yoshifumi Nakamura <nakamura@riken.jp>
1 parent 91f2500 commit bd2ecab

18 files changed

Lines changed: 378 additions & 60 deletions

File tree

.github/workflows/gitlab-manual-ci.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,27 @@ jobs:
4444
name: Run GitLab CI manually
4545
runs-on: ubuntu-latest
4646
steps:
47-
- name: Check out target ref
47+
- name: Check out trusted workflow ref
4848
uses: actions/checkout@v4
4949
with:
5050
fetch-depth: 0
51-
ref: ${{ inputs.target_ref }}
51+
path: trusted
5252

5353
- name: Prepare GitLab repository settings
5454
id: gitlab-repo
55-
uses: ./.github/actions/prepare-gitlab-repo
55+
uses: ./trusted/.github/actions/prepare-gitlab-repo
5656
with:
5757
gitlab-repo: ${{ secrets.GITLAB_REPO }}
5858

59+
- name: Check out target ref
60+
uses: actions/checkout@v4
61+
with:
62+
fetch-depth: 0
63+
ref: ${{ inputs.target_ref }}
64+
path: target
65+
5966
- name: Push target ref to GitLab test branch
67+
working-directory: target
6068
env:
6169
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
6270
GITLAB_REPO_HOST_PATH: ${{ steps.gitlab-repo.outputs.host-path }}
@@ -184,6 +192,7 @@ jobs:
184192
185193
- name: Delete GitLab test branch
186194
if: always()
195+
working-directory: trusted
187196
env:
188197
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
189198
GITLAB_REPO_HOST_PATH: ${{ steps.gitlab-repo.outputs.host-path }}

benchpark-bridge/scripts/result_converter.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import os
1111
import sys
1212
import glob
13-
import yaml
1413
from datetime import datetime
1514
from pathlib import Path
1615

@@ -535,4 +534,4 @@ def main():
535534

536535

537536
if __name__ == "__main__":
538-
main()
537+
main()

config/queue.csv

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
queue,submit_cmd,template
2+
SLURM_AI4SS,sbatch,"-p ${queue_group} -t ${elapse} -N ${nodes} --ntasks-per-node=${numproc_node} --cpus-per-task=${nthreads} --gpus-per-node=${numproc_node}"
23
FJ,pjsub,"-L rscunit=rscunit_ft01,rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi max-proc-per-node=${numproc_node} -x PJM_LLIO_GFSCACHE=/vol0002:/vol0003:/vol0004:/vol0005"
34
PJM_GENKAI,pjsub,"-L rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi proc=${proc}"
45
SLURM_RC,sbatch,"-p ${queue_group} -t ${elapse} -N ${nodes} --ntasks-per-node=${numproc_node} --cpus-per-task=${nthreads}"
@@ -7,4 +8,12 @@ PBS_Grand_C,qsub,"-q ${queue_group} -l select=${nodes}:nsockets=${cpu_per_node},
78
PBS_Grand_G,qsub,"-q ${queue_group} -l select=${nodes}:ngpus=1,walltime=${elapse} -W group_list=d30992"
89
NQSV_AOBA_VE,qsub,"-Z -v http_proxy,https_proxy,HTTP_PROXY,HTTPS_PROXY -q ${queue_group} -T necmpi --venode ${proc} -l elapstim_req=${elapse}"
910
NQSV_AOBA_B,qsub,"-Z -v http_proxy,https_proxy,HTTP_PROXY,HTTPS_PROXY -q ${queue_group} -T intmpi -b ${nodes} -l elapstim_req=${elapse}"
11+
PJM_WISTERIA_O,pjsub,"-g jh260034o -L rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi proc=${proc} --omp thread=${nthreads}"
12+
PJM_WISTERIA_A,pjsub,"-g jh260034a -L rscgrp=${queue_group},elapse=${elapse},node=${nodes} --mpi proc=${proc} --omp thread=${nthreads}"
13+
PBS_TSUKUBA,qsub,"-q ${queue_group} -l select=${nodes}:mpiprocs=${numproc_node}:ompthreads=${nthreads} -l walltime=${elapse}"
14+
AGE_TSUBAME4,qsub,"-l ${queue_group}=${nodes} -l h_rt=${elapse}"
15+
SLURM_CAMPHOR3,sbatch,"-p ${queue_group} -t ${elapse} --rsc p=${proc}:t=${nthreads}:c=${nthreads}:m=1G"
16+
NQSV_OSAKA_CPU,qsub,"-q ${queue_group} -b ${nodes} -l elapstim_req=${elapse},cpunum_job=${nthreads}"
17+
NQSV_OSAKA_GPU,qsub,"-q ${queue_group} -b ${nodes} -l elapstim_req=${elapse},cpunum_job=${nthreads},gpunum_job=${gpu_per_node}"
18+
NQSV_OSAKA_VE,qsub,"-q ${queue_group} --venode ${proc} -l elapstim_req=${elapse}"
1019
none,none,none

config/system.csv

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
system,mode,tag_build,tag_run,queue,queue_group
2+
AI4SS,cross,ai4ss_login,ai4ss_jacamar,SLURM_AI4SS,1n1gpu
23
Fugaku,cross,fugaku_login1,fugaku_jacamar,FJ,small
34
FugakuLN,native,,fugaku_login1,none,small
45
FugakuCN,native,,fugaku_jacamar,FJ,small
@@ -16,4 +17,14 @@ Grand_G,cross,grand_login,grand_jacamar,PBS_Grand_G,eg
1617
AOBA_A,cross,aoba_ab_login,aoba_ab_jacamar,NQSV_AOBA_VE,sx
1718
AOBA_B,cross,aoba_ab_login,aoba_ab_jacamar,NQSV_AOBA_B,lx
1819
AOBA_S,cross,aoba_s_login,aoba_s_jacamar,NQSV_AOBA_VE,sxs
20+
Odyssey,cross,wisteria_login,wisteria-o_jacamar,PJM_WISTERIA_O,short-o
21+
Aquarius,cross,wisteria_login,wisteria-a_jacamar,PJM_WISTERIA_A,short-a
22+
Pegasus,cross,pegasus_login,pegasus_jacamar,PBS_TSUKUBA,regular
23+
Sirius,cross,sirius_login,sirius_jacamar,PBS_TSUKUBA,regular
24+
TSUBAME4,cross,tsubame4_login,tsubame4_jacamar,AGE_TSUBAME4,node_f
25+
Camphor3,cross,camphor3_login,camphor3_jacamar,SLURM_CAMPHOR3,jha
26+
SQUID_CPU,cross,squid_login,squid_jacamar,NQSV_OSAKA_CPU,SQUID
27+
SQUID_GPU,cross,squid_login,squid_jacamar,NQSV_OSAKA_GPU,SQUID
28+
SQUID_VECTOR,cross,squid_login,squid_jacamar,NQSV_OSAKA_VE,SQUID
29+
OCTOPUS,cross,octopus_login,octopus_jacamar,NQSV_OSAKA_CPU,OCT
1930
FNCX,native,,fncx-curl-jq,none,small

config/system_info.csv

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
system,name,cpu_name,cpu_per_node,cpu_cores,gpu_name,gpu_per_node,memory,display_order
2-
Fugaku,Fugaku,A64FX,1,48,-,-,32GB,1
3-
FugakuCN,FugakuCN,A64FX,1,48,-,-,32GB,2
4-
FugakuLN,FugakuLN,Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz,2,16,-,-,96GB,3
5-
MiyabiG,MiyabiG,NVIDIA Grace CPU,1,72,NVIDIA Hopper H100 GPU,1,120GB,4
6-
MiyabiC,MiyabiC,Intel Xeon Max 9480,2,56,-,-,128GB,5
7-
RC_GH200,RC_GH200,NVIDIA Grace CPU,1,72,NVIDIA Hopper H100 GPU,1,120GB,6
8-
RC_DGXSP,RC_DGXSP,ARM Cortex-X925 / Cortex-A725,1,20,NVIDIA GB10,1,128GB,7
9-
RC_GENOA,RC_GENOA,AMD EPYC 9684X,2,96,-,-,768GB,8
10-
RC_FX700,RC_FX700,A64FX,1,48,-,-,32GB,9
11-
GenkaiA,GenkaiA,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,-,-,512GiB,10
12-
GenkaiB,GenkaiB,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,NVIDIA H100 (Hopper),4,1024GiB,11
13-
GenkaiC,GenkaiC,Intel Xeon Platinum 8480+ (Sapphire Rapids),2,56,NVIDIA H100 (Hopper),8,8TiB,12
14-
Grand_C,Grand_C,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,-,-,512GiB,13
15-
Grand_G,Grand_G,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,NVIDIA H100 (Hopper),4,512GiB,14
16-
AOBA_A,AOBA_A,SX-Aurora TSUBASA VH,1,24,NEC SX-Aurora TSUBASA Type 20B VE,8,640GB,15
17-
AOBA_B,AOBA_B,AMD EPYC 7702,2,64,-,-,256GB,16
18-
AOBA_S,AOBA_S,SX-Aurora TSUBASA VH,1,64,NEC SX-Aurora TSUBASA Type 30A VE,8,256GB + 768GB,17
2+
AI4SS,RIKEN AI4S Supercomputer,NVIDIA Grace CPU,2,72,NVIDIA B200,4,960GiB + 692.8GiB,1
3+
Fugaku,Fugaku,A64FX,1,48,-,-,32GB,2
4+
FugakuCN,FugakuCN,A64FX,1,48,-,-,32GB,3
5+
FugakuLN,FugakuLN,Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz,2,16,-,-,96GB,4
6+
MiyabiG,MiyabiG,NVIDIA Grace CPU,1,72,NVIDIA Hopper H100 GPU,1,120GB,5
7+
MiyabiC,MiyabiC,Intel Xeon Max 9480,2,56,-,-,128GB,6
8+
RC_GH200,RC_GH200,NVIDIA Grace CPU,1,72,NVIDIA Hopper H100 GPU,1,120GB,7
9+
RC_DGXSP,RC_DGXSP,ARM Cortex-X925 / Cortex-A725,1,20,NVIDIA GB10,1,128GB,8
10+
RC_GENOA,RC_GENOA,AMD EPYC 9684X,2,96,-,-,768GB,9
11+
RC_FX700,RC_FX700,A64FX,1,48,-,-,32GB,10
12+
GenkaiA,GenkaiA,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,-,-,512GiB,11
13+
GenkaiB,GenkaiB,Intel Xeon Platinum 8490H (Sapphire Rapids),2,60,NVIDIA H100 (Hopper),4,1024GiB,12
14+
GenkaiC,GenkaiC,Intel Xeon Platinum 8480+ (Sapphire Rapids),2,56,NVIDIA H100 (Hopper),8,8TiB,13
15+
Grand_C,Grand_C,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,-,-,512GiB,14
16+
Grand_G,Grand_G,Intel Xeon Gold 6548Y+ (Emerald Rapids),2,32,NVIDIA H100 (Hopper),4,512GiB,15
17+
AOBA_A,AOBA_A,SX-Aurora TSUBASA VH,1,24,NEC SX-Aurora TSUBASA Type 20B VE,8,640GB,16
18+
AOBA_B,AOBA_B,AMD EPYC 7702,2,64,-,-,256GB,17
19+
AOBA_S,AOBA_S,SX-Aurora TSUBASA VH,1,64,NEC SX-Aurora TSUBASA Type 30A VE,8,256GB + 768GB,18
20+
Odyssey,Odyssey,A64FX,1,48,-,-,32GiB,19
21+
Aquarius,Aquarius,Intel Xeon Platinum 8360Y,2,36,NVIDIA A100,8,512GiB,20
22+
TSUBAME4,TSUBAME4.0,AMD EPYC 9654,2,96,NVIDIA H100 SXM5 94GB HBM2e,4,768GiB,21
23+
Camphor3,Camphor3,Intel Xeon CPU Max 9480,2,56,-,-,128GiB,22
24+
Pegasus,Pegasus,Intel Xeon Platinum 8468,2,48,NVIDIA H100 PCIe,1,128GiB + 2TiB PMem,23
25+
Sirius,Sirius (PACS12.0),AMD EPYC Zen 4 (MI300A APU),4,24,AMD Instinct MI300A CDNA3,4,512GB HBM3,24
26+
SQUID_CPU,SQUID CPU,Intel Xeon Platinum 8368,2,38,-,-,256GB,25
27+
SQUID_GPU,SQUID GPU,Intel Xeon Platinum 8368,2,38,NVIDIA A100 SXM4 40GB,8,512GB,26
28+
SQUID_VECTOR,SQUID Vector,AMD EPYC 7402P,1,24,NEC SX-Aurora TSUBASA Type20A VE,8,128GB + 384GB,27
29+
OCTOPUS,OCTOPUS,Intel Xeon 6980P (Granite Rapids),2,128,-,-,768GB,28

docs/ci.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ Use these examples when deciding whether to split a pull request or start GitLab
260260
| Example change set / 変更例 | Expected checks / 期待される確認 | GitLab benchmark expectation / GitLab benchmark期待値 |
261261
|---|---|---|
262262
| `docs/ci.md` only / `docs/ci.md`のみ | Review the documentation diff / docs差分をreview | No benchmark run. Direct/manual GitLab pipelines should skip by rules / benchmark不要。直接/手動GitLab pipelineではrulesでskipされる想定 |
263-
| `result_server/routes/usage.py` and `result_server/templates/*.html` / `result_server/routes/usage.py``result_server/templates/*.html` | `Result Server Tests` should run / `Result Server Tests`が動く | No benchmark run unless a maintainer intentionally starts one / maintainerが意図して起動しない限りbenchmark不要 |
263+
| `result_server/routes/results_usage_routes.py` and `result_server/templates/*.html` / `result_server/routes/results_usage_routes.py``result_server/templates/*.html` | `Result Server Tests` should run / `Result Server Tests`が動く | No benchmark run unless a maintainer intentionally starts one / maintainerが意図して起動しない限りbenchmark不要 |
264264
| `config/system_info.csv` only / `config/system_info.csv`のみ | `Result Server Tests` should verify public site config consistency / 公開site config整合性を`Result Server Tests`で確認 | No benchmark run because this file is portal display metadata / portal表示metadataなのでbenchmark不要 |
265265
| `config/system.csv` or `config/queue.csv` for a public system / 公開system向けの`config/system.csv`または`config/queue.csv` | `Result Server Tests` should run the site config preflight / `Result Server Tests`でsite config preflightを実行 | Start `GitLab Manual CI` too when benchmark execution behavior needs validation / benchmark実行挙動の検証が必要なら`GitLab Manual CI`も起動 |
266266
| `scripts/bk_functions.sh`, `scripts/result.sh`, or `scripts/result_server/**` only / `scripts/bk_functions.sh``scripts/result.sh`、または`scripts/result_server/**`のみ | `Result Server Tests` should run when the path filter matches / path filter対象なら`Result Server Tests`が動く | Manual GitLab CI is optional and only needed if upload behavior affects benchmark operation / upload挙動がbenchmark運用に影響する場合だけ手動GitLab CIを検討 |

programs/qws/build.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ case "$system" in
3636
echo "Dummy build for FNCX Docker runner test"
3737
echo aaaa > main
3838
;;
39+
AI4SS)
40+
module load nvhpc-hpcx/26.3
41+
make -j 8 omp=1 compiler=nvhpc-hpcx arch=grace rdma= mpi=1
42+
;;
3943
RC_GH200)
4044
module load system/qc-gh200 nvhpc-hpcx/25.9
4145
### QWSはNeoverse版やGPU版はないので汎用版としてとりあえずarch=skylakeを指定している
@@ -75,6 +79,38 @@ case "$system" in
7579
AOBA_B)
7680
make -j 8 fugaku_benchmark= omp=1 compiler=openmpi-gnu arch=skylake rdma= mpi=1 powerapi= CC=mpicc CXX=mpic++
7781
;;
82+
Odyssey)
83+
module load odyssey
84+
make compiler=fujitsu_cross arch=postk -j 8
85+
;;
86+
Aquarius)
87+
module purge
88+
module load intel
89+
source /work/opt/local/x86_64/cores/intel/2023.0.0/mpi/latest/env/vars.sh
90+
make compiler=intel arch=skylake rdma= -j8
91+
;;
92+
TSUBAME4)
93+
make -j 8 fugaku_benchmark= omp=1 compiler=openmpi-gnu arch=skylake rdma= mpi=1 powerapi= CC=mpicc CXX=mpic++
94+
;;
95+
Camphor3)
96+
camphor3_modulepath="${MODULEPATH:-}"
97+
if [[ -r /etc/profile.d/modules.sh ]]; then
98+
source /etc/profile.d/modules.sh
99+
elif [[ -r /etc/profile.d/z00_lmod.sh ]]; then
100+
source /etc/profile.d/z00_lmod.sh
101+
else
102+
echo "qws: no module init script found" >&2
103+
fi
104+
if [[ -n "${MODULEPATH:-}" ]]; then
105+
camphor3_modulepath="${MODULEPATH}"
106+
fi
107+
module purge
108+
if [[ -n "${camphor3_modulepath:-}" ]]; then
109+
export MODULEPATH="${camphor3_modulepath}"
110+
fi
111+
module load slurm/2022 SysA/2022 intel/2023.2 intelmpi/2023.2 PrgEnvIntel/2023
112+
make -j 8 fugaku_benchmark= omp=1 compiler=intel arch=skylake rdma= mpi=1 powerapi=
113+
;;
78114
*)
79115
echo "Unknown system: $system"
80116
exit 1

programs/qws/list.csv

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
system,enable,nodes,numproc_node,nthreads,elapse
2+
AI4SS,yes,1,1,72,0:10:00
23
Fugaku,yes,1,4,12,0:10:00
34
FugakuLN,yes,1,1,1,0:10:00
45
FugakuCN,no,1,4,12,0:10:00
56
FugakuCN,no,2,4,12,0:10:00
67
RC_GH200,yes,1,1,72,0:10:00
78
RC_DGXSP,yes,1,1,20,0:10:00
89
RC_GENOA,yes,1,1,96,0:10:00
9-
RC_FX700,yes,1,4,12,0:10:00
10+
RC_FX700,yes,1,1,12,0:10:00
1011
MiyabiG,yes,1,1,72,0:10:00
1112
MiyabiC,yes,1,1,112,0:10:00
1213
GenkaiA,yes,1,1,120,0:10:00
@@ -17,4 +18,8 @@ Grand_G,yes,1,1,64,0:10:00
1718
AOBA_A,yes,1,1,8,0:10:00
1819
AOBA_S,yes,1,1,8,0:10:00
1920
AOBA_B,yes,1,1,128,0:10:00
21+
Odyssey,yes,1,1,12,0:10:00
22+
Aquarius,yes,1,1,8,0:10:00
23+
TSUBAME4,yes,1,1,192,0:10:00
24+
Camphor3,yes,1,1,112,0:10:00
2025
FNCX,yes,1,1,1,0:10:00

programs/qws/run.sh

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ case "$system" in
8484
echo 'dummy call for FNCX Docker runner test'
8585
bk_emit_result --fom 99.99 --fom-version dummy --exp FNCXTest --nodes "$nodes" --numproc-node "$numproc_node" --nthreads "$nthreads" >> ../results/result
8686
;;
87+
AI4SS)
88+
module load nvhpc-hpcx/26.3
89+
export OMP_NUM_THREADS=72
90+
export OMP_PLACES=cores
91+
export OMP_PROC_BIND=close
92+
mpirun --bind-to none -n 1 ./main 32 6 4 3 1 1 1 1 -1 -1 6 50 > CASE0
93+
print_results CASE0 CASE0 1 >> ../results/result
94+
;;
8795
RC_GH200)
8896
module load system/qc-gh200 nvhpc-hpcx/25.9
8997
mpirun -n 1 --bind-to core --map-by ppr:1:node:PE=72 ./main 32 6 4 3 1 1 1 1 -1 -1 6 50 > CASE0
@@ -141,6 +149,58 @@ case "$system" in
141149
mpirun -np ${qws_numproc} ./main 32 6 4 3 1 1 1 1 -1 -1 6 50 > CASE0
142150
print_results CASE0 CASE0 ${numproc_node} >> ../results/result
143151
;;
152+
Odyssey)
153+
if [[ -r /etc/profile.d/modules.sh ]]; then
154+
source /etc/profile.d/modules.sh
155+
else
156+
echo "qws: /etc/profile.d/modules.sh is not readable" >&2
157+
fi
158+
module unload fjmpi fj odyssey 2>/dev/null || true
159+
module load odyssey fj fjmpi
160+
export OMP_NUM_THREADS=12
161+
export PLE_MPI_STD_EMPTYFILE=off
162+
mpiexec -n 1 -ofout CASE0 ./main 32 6 4 3 1 1 1 1 -1 -1 6 50
163+
print_results CASE0 CASE0 1 >> ../results/result
164+
;;
165+
Aquarius)
166+
module purge
167+
module load intel
168+
source /work/opt/local/x86_64/cores/intel/2023.0.0/mpi/latest/env/vars.sh
169+
export OMP_NUM_THREADS=8
170+
export I_MPI_PIN=1
171+
mpiexec -n 1 ./main 32 6 4 3 1 1 1 1 -1 -1 6 50 > CASE0
172+
print_results CASE0 CASE0 1 >> ../results/result
173+
;;
174+
TSUBAME4)
175+
qws_numproc=$((nodes * numproc_node))
176+
mpirun -n ${qws_numproc} ./main 32 6 4 3 1 1 1 1 -1 -1 6 50 > CASE0
177+
print_results CASE0 CASE0 ${numproc_node} >> ../results/result
178+
;;
179+
Camphor3)
180+
camphor3_modulepath="${MODULEPATH:-}"
181+
if [[ -r /etc/profile.d/modules.sh ]]; then
182+
source /etc/profile.d/modules.sh
183+
elif [[ -r /etc/profile.d/z00_lmod.sh ]]; then
184+
source /etc/profile.d/z00_lmod.sh
185+
else
186+
echo "qws: no module init script found" >&2
187+
fi
188+
if [[ -n "${MODULEPATH:-}" ]]; then
189+
camphor3_modulepath="${MODULEPATH}"
190+
fi
191+
module purge
192+
if [[ -n "${camphor3_modulepath:-}" ]]; then
193+
export MODULEPATH="${camphor3_modulepath}"
194+
fi
195+
module load intel/2023.2 intelmpi/2023.2 PrgEnvIntel/2023
196+
export OMP_NUM_THREADS="${nthreads}"
197+
export I_MPI_PIN=1
198+
if [[ "${SLURM_CONF:-}" == /etc/slurm/sysA/* ]]; then
199+
unset SLURM_CONF
200+
fi
201+
srun -n 1 -c "${nthreads}" ./main 32 6 4 3 1 1 1 1 -1 -1 6 50 > CASE0
202+
print_results CASE0 CASE0 1 >> ../results/result
203+
;;
144204
*)
145205
echo "Unknown Running system: $system"
146206
exit 1

requirements-result-server.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# result_server requires Python 3.12+ for safe tar extraction via tarfile filter="data".
1+
# result_server is tested and deployed on Python 3.12+; archive handling uses explicit path/type validation.
22
Flask>=3.0,<4.0
33
Flask-Session>=0.8,<1.0
44
Flask-WTF>=1.2,<2.0

0 commit comments

Comments
 (0)