diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index acc107b22a78b3b76ca76b3f2d3dc1b15b293fa3..808d0833dcd9ec428168b4801fef3fee58198460 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,12 +1,14 @@
 image: eicweb.phy.anl.gov:4567/containers/image_recipes/ubuntu_dind:latest
 
 variables:
-  ## Application versions used for the main release ## note: nightly builds will always use the master branch
+  ## Application versions used for the main release 
+  ## note: nightly builds will always use the master/main branch
   JUGGLER_VERSION: "v3.4.0"
   NPDET_VERSION: "v0.9.0"
   EICD_VERSION: "v0.8.0"
   DETECTOR_VERSION: "acadia-v1.0-alpha"
   IP6_VERSION: "v0.4.0"
+  AFTERBURNER_VERSION: "v0.0.1"
 
   ## Spack github version
   SPACK_VERSION: "a68abc15c5b1b8266130f765d1bee6290e71fa7c"
@@ -241,6 +243,7 @@ jug_xl:default:
                    --build-arg JUGGLER_VERSION=${JUGGLER_VERSION}
                    --build-arg NPDET_VERSION=${NPDET_VERSION}
                    --build-arg EICD_VERSION=${EICD_VERSION}
+                   --build-arg AFTERBURNER_VERSION=${AFTERBURNER_VERSION}
                    --build-arg DETECTOR_VERSION=${DETECTOR_VERSION}
                    --build-arg IP6_VERSION=${IP6_VERSION}
                    --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
@@ -352,6 +355,18 @@ juggler:master:
     project: EIC/juggler
   allow_failure: true
 
+.test:
+  stage: test
+  needs:
+    - version
+    - jug_xl:singularity:nightly
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+      when: on_success
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+      when: on_success
+    - when: never
+
 include:
   - local: 'tests/tutorial/config.yml'
 
diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile
index 68cec91121d783b6f1ba59f1301599490ff93f21..12ef906223eb6b7b1641b43a837a89e483b9fea8 100644
--- a/containers/debian/Dockerfile
+++ b/containers/debian/Dockerfile
@@ -18,6 +18,8 @@ ENV CLICOLOR_FORCE=1                                                    \
 ## Install additional packages. Remove the auto-cleanup functionality
 ## for docker, as we're using the new buildkit cache instead.
 ## We also install gitlab-runner, from the buster package (as bullseye is not available atm)
+## TODO: libyaml-cpp-dev is a dependency for afterburner. We can probably remove
+##       this once afterburner is added to spack
 RUN --mount=type=cache,target=/var/cache/apt                            \
     rm -f /etc/apt/apt.conf.d/docker-clean                              \
  && apt-get -yqq update                                                 \
@@ -50,6 +52,7 @@ RUN --mount=type=cache,target=/var/cache/apt                            \
         parallel                                                        \
         time                                                            \
         valgrind                                                        \
+        libyaml-cpp-dev                                                 \
  && localedef -i en_US -f UTF-8 en_US.UTF-8                             \
  && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100  \
  && update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100  \
diff --git a/containers/jug/dev.Dockerfile b/containers/jug/dev.Dockerfile
index f5e6c458259f999a4b29c54e958dacccc45899a8..9512fee507c855b8d7190789bee084918f97cca9 100644
--- a/containers/jug/dev.Dockerfile
+++ b/containers/jug/dev.Dockerfile
@@ -244,7 +244,10 @@ RUN --mount=from=staging,target=/staging                                \
  && cp /staging/etc/jug_info /etc/jug_info                              \
  && cp -r /staging/.singularity.d /.singularity.d                        
 
+## set the jug_dev version and add the afterburner
+## TODO: move afterburner to spack when possible
 ARG JUG_VERSION=1
+ARG AFTERBURNER_VERSION=main
 RUN echo "" >> /etc/jug_info                                            \
  && echo " - jug_dev: ${JUG_VERSION}" >> /etc/jug_info
 
diff --git a/containers/jug/xl.Dockerfile b/containers/jug/xl.Dockerfile
index f10f5ad2260cba350c1f8289d7106378bf223e36..57259ceba468a273f02ddb468ee58f3d962e971d 100644
--- a/containers/jug/xl.Dockerfile
+++ b/containers/jug/xl.Dockerfile
@@ -10,6 +10,9 @@ FROM eicweb.phy.anl.gov:4567/containers/eic_container/jug_dev:${INTERNAL_TAG}
 ARG JUGGLER_VERSION="master"
 ARG NPDET_VERSION="master"
 ARG EICD_VERSION="master"
+## afterburner
+## TODO move to spack build
+ARG AFTERBURNER_VERSION=main
 
 ## version will automatically bust cache for nightly, as it includes
 ## the date
@@ -44,7 +47,18 @@ RUN cd /tmp
  && echo " - Juggler: ${JUGGLER_VERSION}-$(git rev-parse HEAD)"                 \
           >> /etc/jug_info                                                      \
  && popd                                                                        \
- && rm -rf build juggler
+ && rm -rf build juggler                                                        \
+ && echo "INSTALLING AFTERBURNER"                                               \
+ && git clone -b ${AFTERBURNER_VERSION} --depth 1                               \
+        https://eicweb.phy.anl.gov/monte_carlo/afterburner.git                  \
+ && cmake -B build -S afterburner/cpp -DCMAKE_INSTALL_PREFIX=/usr/local         \
+          -DCMAKE_CXX_STANDARD=17                                               \
+ && cmake --build build -j12 --target all -- install                            \
+ && pushd afterburner                                                           \
+ && echo " - afterburner: ${AFTERBURNER_VERSION}-$(git rev-parse HEAD)"         \
+          >> jug_info                                                           \
+ && popd                                                                        \
+ && rm -rf build afterburner
 
 ## also install detector/ip geometries into opt
 ## FIXME: need to add proper compact file install directly to the athena detector
diff --git a/tests/tutorial/config.yml b/tests/tutorial/config.yml
index 10352b27ca1e72004cbfa0eaf0e42d91f0a86fcc..c9933e23cf942f9669061c0c86c9408a33ff2673 100644
--- a/tests/tutorial/config.yml
+++ b/tests/tutorial/config.yml
@@ -3,16 +3,7 @@
 
 
 test:tutorial:
-  stage: test
-  needs:
-    - version
-    - jug_xl:singularity:nightly
-  rules:
-    - if: '$CI_COMMIT_BRANCH == "master"'
-      when: on_success
-    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
-      when: on_success
-    - when: never
+  extends: .test
   script:
     - mkdir eic && cd eic
     - mkdir -p .gitlab-ci && mv ../build/jug_xl.sif .gitlab-ci/jug_xl-ci-test.sif