diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 87494abcdd8f95922eec59f0a71705bbe2b8a050..1133d9a02132c52cdcb143c6a953ccf345948990 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -119,7 +119,6 @@ variables:
 
   ## is this nightly or not?
   NIGHTLY:
-  NIGHTLY_WITH_DATE: 1
 
   ## Force a rebuild without using cache
   FORCE_NOCACHE: 0
@@ -347,49 +346,72 @@ jug_dev:default:
                    containers/jug
       ; done
 
-jug_xl:
+jug_xl:default:
   parallel:
     matrix:
       - BASE_IMAGE: jug_dev
         BUILD_IMAGE: jug_xl
-        BUILD_TYPE:
-        - default
-        - nightly
         PLATFORM: linux/amd64,linux/arm64/v8
 #      - BASE_IMAGE: jug_dev_oneapi
 #        BUILD_IMAGE: jug_xl_oneapi
-#         BUILD_TYPE:
-#         - default
-#         - nightly
 #        PLATFORM: linux/amd64
   extends: .build
   stage: jug
+  needs:
+    - version
+    - jug_dev:default
+  script:
+    - docker buildx build --push
+                   --tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${INTERNAL_TAG}
+                   ${EXPORT_TAG:+
+                     ${CI_PUSH:+--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${EXPORT_TAG}}
+                     ${DH_PUSH:+--tag ${DH_REGISTRY}/${DH_REGISTRY_USER}/${BUILD_IMAGE}:${EXPORT_TAG}}
+                     ${GH_PUSH:+--tag ${GH_REGISTRY}/${GH_REGISTRY_USER}/${BUILD_IMAGE}:${EXPORT_TAG}}
+                   }
+                   --file containers/jug/xl.Dockerfile
+                   --platform ${PLATFORM}
+                   --build-arg BASE_IMAGE=${BASE_IMAGE}
+                   --build-arg INTERNAL_TAG=${INTERNAL_TAG}
+                   --build-arg JUGGLER_VERSION=${JUGGLER_VERSION}
+                   --build-arg EICRECON_VERSION=${EICRECON_VERSION}
+                   --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
+                   --build-arg jobs=${JOBS}
+                   --build-context detectors=.
+                   containers/jug
+
+jug_xl:nightly:
+  parallel:
+    matrix:
+      - BASE_IMAGE: jug_dev
+        BUILD_IMAGE: jug_xl
+        PLATFORM: linux/amd64,linux/arm64/v8
+#      - BASE_IMAGE: jug_dev_oneapi
+#        BUILD_IMAGE: jug_xl_oneapi
+#        PLATFORM: linux/amd64
+  extends: .build
+  stage: jug
+  rules:
+    - if: '$CI_COMMIT_BRANCH == "master"'
+      when: on_success
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+      when: on_success
+    - when: never
   needs:
     - version
     - jug_dev:default
   script:
     - |
-      if [ "${BUILD_TYPE}" == "nightly" ] ; then
-        IF_BUILD_NIGHTLY=1
-      fi
-    - |
-      if [ "${BUILD_TYPE}" == "default" ] ; then
-        IF_BUILD_DEFAULT=1
+      PUSH_NIGHTLY_WITH_DATE=""
+      if [ "$CI_COMMIT_BRANCH" == "master" ]; then
+        PUSH_NIGHTLY_WITH_DATE="1"
       fi
     - docker buildx build --push
                    --tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${INTERNAL_TAG}
-                   ${IF_BUILD_DEFAULT:+
-                     ${EXPORT_TAG:+
-                       ${CI_PUSH:+--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${EXPORT_TAG}}
-                       ${DH_PUSH:+--tag ${DH_REGISTRY}/${DH_REGISTRY_USER}/${BUILD_IMAGE}:${EXPORT_TAG}}
-                       ${GH_PUSH:+--tag ${GH_REGISTRY}/${GH_REGISTRY_USER}/${BUILD_IMAGE}:${EXPORT_TAG}}
-                     }
-                   }
                    ${NIGHTLY:+
                      ${CI_PUSH:+--tag ${CI_REGISTRY}/${CI_PROJECT_PATH}/${BUILD_IMAGE}:${NIGHTLY_TAG}}
                      ${DH_PUSH:+--tag ${DH_REGISTRY}/${DH_REGISTRY_USER}/${BUILD_IMAGE}:${NIGHTLY_TAG}}
                      ${GH_PUSH:+--tag ${GH_REGISTRY}/${GH_REGISTRY_USER}/${BUILD_IMAGE}:${NIGHTLY_TAG}}
-                     ${NIGHTLY_WITH_DATE:+
+                     ${PUSH_NIGHTLY_WITH_DATE:+
                        ${DH_PUSH:+--tag ${DH_REGISTRY}/${DH_REGISTRY_USER}/${BUILD_IMAGE}:${NIGHTLY_TAG}-$(date +%Y-%m-%d)}
                        ${GH_PUSH:+--tag ${GH_REGISTRY}/${GH_REGISTRY_USER}/${BUILD_IMAGE}:${NIGHTLY_TAG}-$(date +%Y-%m-%d)}
                      }
@@ -398,16 +420,8 @@ jug_xl:
                    --platform ${PLATFORM}
                    --build-arg BASE_IMAGE=${BASE_IMAGE}
                    --build-arg INTERNAL_TAG=${INTERNAL_TAG}
-                   ${IF_BUILD_DEFAULT:+
-                     --build-arg JUGGLER_VERSION=${JUGGLER_VERSION}
-                     --build-arg EICRECON_VERSION=${EICRECON_VERSION}
-                     --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
-                   }
-                   ${IF_BUILD_NIGHTLY:+
-                     --build-arg NIGHTLY=1
-                     --build-arg JUG_VERSION=nightly-$(date +%Y-%m-%d_%H-%M-%S)-${INTERNAL_TAG}-$(git rev-parse HEAD)
-                   }
-                   --build-arg jobs=${JOBS}
+                   --build-arg JUG_VERSION=nightly-$(date +%Y-%m-%d_%H-%M-%S)-${INTERNAL_TAG}-$(git rev-parse HEAD)
+                   --build-arg NIGHTLY=1
                    --build-context detectors=.
                    containers/jug
 
@@ -420,7 +434,7 @@ jug_xl:feature:
     - when: never
   needs:
     - version
-    - jug_xl
+    - jug_xl:nightly
   variables:
     BUILD_IMAGE: "jug_xl"
   parallel:
@@ -471,7 +485,7 @@ jug_xl:singularity:default:
   extends: .singularity
   needs:
     - version
-    - jug_xl
+    - jug_xl:default
   variables:
     BUILD_IMAGE: "jug_xl"
 
@@ -484,7 +498,7 @@ jug_xl:singularity:nightly:
     - when: never
   needs:
     - version
-    - jug_xl
+    - jug_xl:nightly
   variables:
     BUILD_IMAGE: "jug_xl"
   script:
@@ -497,7 +511,7 @@ benchmarks:reconstruction:
     - if:  '$CI_SERVER_HOST == "eicweb.phy.anl.gov"'
   needs: 
     - version
-    - jug_xl
+    - jug_xl:default
   variables:
     BENCHMARKS_TAG: "$INTERNAL_TAG"
     BENCHMARKS_CONTAINER: "jug_xl"
@@ -513,7 +527,7 @@ benchmarks:physics:
     - if:  '$CI_SERVER_HOST == "eicweb.phy.anl.gov"'
   needs: 
     - version
-    - jug_xl
+    - jug_xl:default
   variables:
     RECO: "eicrecon"
     BENCHMARKS_TAG: "$INTERNAL_TAG"