diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a4743612cf1738b16977451dbd8ef8804ad7413f..0963b1e7ed053eed785cc0212a9174d324047d43 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -63,6 +63,16 @@ get_data:
     - ln -s ${LOCAL_DATA_PATH}/datasets/data data
     - cd ${LOCAL_DATA_PATH} && git clone --depth=1 https://eicweb.phy.anl.gov/EIC/datasets.git datasets
 
+.det_benchmark:
+  image: eicweb.phy.anl.gov:4567/eic/juggler/juggler:$JUGGLER_TAG
+  needs:
+    - ["get_data"]
+  artifacts:
+    expire_in: 20 weeks
+    paths:
+      - results/
+
+
 include: 
   - local: 'benchmarks/trackers/config.yml'
   - local: 'benchmarks/calorimeters/config.yml'
diff --git a/benchmarks/calorimeters/config.yml b/benchmarks/calorimeters/config.yml
index de89e7e8101cb17093ffb5eec5389739477892f0..d2452086226b04730585dcbd9beca482e879488b 100644
--- a/benchmarks/calorimeters/config.yml
+++ b/benchmarks/calorimeters/config.yml
@@ -6,51 +6,34 @@
 #####################
 
 cal_sim:emcal_barrel_pions:
-  image: eicweb.phy.anl.gov:4567/eic/juggler/juggler:$JUGGLER_TAG
+  extends: .det_benchmark
   stage: simulate
-  artifacts:
-    expire_in: 20 weeks
-    paths:
-      - results/
   script:
     - bash benchmarks/calorimeters/run_emcal_barrel_pions.sh
   allow_failure: true
 
 cal_sim:emcal_barrel_electrons:
-  image: eicweb.phy.anl.gov:4567/eic/juggler/juggler:$JUGGLER_TAG
+  extends: .det_benchmark
   stage: simulate
-  artifacts:
-    expire_in: 20 weeks
-    paths:
-      - results/
   script:
     - bash benchmarks/calorimeters/run_emcal_barrel_electrons.sh
   allow_failure: true
 
 cal_sim:crystal_emcal:
+  extends: .det_benchmark
   stage: simulate
-  needs: 
-    - ["get_data"]
-  tags:
-    - silicon
   script:
     - bash benchmarks/calorimeters/run_simulation_crystal.sh
 
 cal_sim:crystal_pion:
+  extends: .det_benchmark
   stage: simulate
-  needs:
-    - ["get_data"]
-  tags:
-    - silicon
   script:
     - npsim --runType batch --numberOfEvents 100 --compactFile ${DETECTOR_PATH}/topside.xml --inputFiles  data/emcal_electrons.hepmc  --outputFile  sim_output/output_emcal_electrons.root
 
 cal_sim:zdc:
+  extends: .det_benchmark
   stage: simulate
-  needs: 
-    - ["get_data"]
-  tags:
-    - silicon
   script:
     - bash benchmarks/calorimeters/run_simulation_zdc.sh
 
@@ -59,43 +42,29 @@ cal_sim:zdc:
 ###################
 
 cal_bench:emcal_barrel_pions:
+  extends: .det_benchmark
   stage: benchmarks
-  tags:
-    - silicon
-  artifacts:
-    expire_in: 20 weeks
-    paths:
-      - results/
   needs:
     - ["cal_sim:emcal_barrel_pions"]
   script:
-    - ls -lrth sim_output
     - root -b -q calorimeters/scripts/emcal_barrel_pions_analysis.cxx+
   allow_failure: true
 
 cal_bench:emcal_barrel_electrons:
+  extends: .det_benchmark
   stage: benchmarks
-  tags:
-    - silicon
-  artifacts:
-    expire_in: 20 weeks
-    paths:
-      - results/
   needs:
     - ["cal_sim:emcal_barrel_electrons"]
   script:
-    - ls -lrth sim_output
     - root -b -q calorimeters/scripts/emcal_barrel_electrons_analysis.cxx+
   allow_failure: true
 
 cal_bench:crystal_benchmark:
+  extends: .det_benchmark
   stage: benchmarks
-  tags:
-    - silicon
   needs:
     - ["cal_sim:crystal_emcal"]
   script:
-    - ls -lrth sim_output
     - root -b -q calorimeters/simple_checking_crystal.cxx+
   allow_failure: true
 
@@ -111,9 +80,8 @@ cal_bench:crystal_benchmark:
       #allow_failure: true
 
 cal_bench:zdc_benchmark:
+  extends: .det_benchmark
   stage: benchmarks
-  tags:
-    - silicon
   needs: 
     - ["cal_sim:zdc"]
   script:
@@ -121,11 +89,10 @@ cal_bench:zdc_benchmark:
   allow_failure: true
 
 cal_bench:zdc_benchmark_info_histogram:
+  extends: .det_benchmark
   stage: benchmarks
   needs: 
     - ["cal_sim:zdc"]
-  tags:
-    - silicon
   script:
     - root -b -q calorimeters/simple_info_plot_histograms.cxx+
   allow_failure: true