diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 18215f43dbde00734290e45970187e160f05cdcf..8cbe58a392403da5f2243620108db06cd4bfb6dc 100755 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -287,7 +287,10 @@ regression_test_4gpu: - pip install "fieldcompare[all]" script: - - hpc-rocket launch --watch regression-tests/multigpu_test/rocket4GPU.yml + - hpc-rocket launch regression-tests/multigpu_test/rocket4GPU.yml |& tee hpcrocket4GPU.log + - hpc-rocket watch regression-tests/multigpu_test/rocket4GPU.yml $(python regression-tests/multigpu_test/utilities/parsejobid.py hpcrocket4GPU.log) + - hpc-rocket finalize regression-tests/multigpu_test/rocket4GPU.yml + - cat output/4GPU/slurm4GPU.out - git clone --depth 1 --filter=blob:none --sparse https://github.com/irmb/test_data - cd test_data - git sparse-checkout set regression_tests/gpu/DrivenCavity_4GPU_2Levels regression_tests/gpu/SphereScaling_4GPU_2Levels @@ -295,9 +298,13 @@ regression_test_4gpu: - fieldcompare dir output/4GPU test_data/regression_tests/gpu/DrivenCavity_4GPU_2Levels --include-files "DrivenCavityMultiGPU*.vtu" - fieldcompare dir output/4GPU test_data/regression_tests/gpu/SphereScaling_4GPU_2Levels --include-files "SphereScaling*.vtu" + after_script: + - hpc-rocket cancel regression-tests/multigpu_test/rocket4GPU.yml $(python regression-tests/multigpu_test/utilities/parsejobid.py hpcrocket4GPU.log) + artifacts: paths: - output/4GPU/slurm4GPU.out + - hpcrocket4GPU.log ############################################################################### regression_test_8gpu: image: python:latest diff --git a/regression-tests/multigpu_test/utilities/parsejobid.py b/regression-tests/multigpu_test/utilities/parsejobid.py new file mode 100644 index 0000000000000000000000000000000000000000..f209f6d3d0ac20243a94d16f89d2aaddeeae24f7 --- /dev/null +++ b/regression-tests/multigpu_test/utilities/parsejobid.py @@ -0,0 +1,20 @@ +from pathlib import Path +import sys + +LAUNCH_MESSAGE = "Launched job" + + +def parsejobid(file: str) -> str: + file_path = Path(file) + if not file_path.exists(): + raise FileNotFoundError(file) + + text_content = file_path.read_text().strip() + launch_line = next( + filter(lambda line: LAUNCH_MESSAGE in line, text_content.splitlines()) + ) + return launch_line.split()[-1].strip() + + +if __name__ == "__main__": + print(parsejobid(sys.argv[1]))