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]))