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