diff --git a/.github/workflows/build-publish-containers.yml b/.github/workflows/build-publish-containers.yml index 32d4c8ec..1d8c3e95 100644 --- a/.github/workflows/build-publish-containers.yml +++ b/.github/workflows/build-publish-containers.yml @@ -11,7 +11,7 @@ on: branches: - main paths: - - containers/Dockerfile.EESSI-client* + - containers/Dockerfile.EESSI-* - containers/build-or-download-cvmfs-rpm.sh # also rebuild the containers for new releases of filesystem-layer: @@ -78,6 +78,35 @@ jobs: rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache + - name: Test containers + run: | + CVMFS_VERSION_EXP=$( + grep "ARG cvmfsversion=" containers/${{ env.DOCKERFILE }} | cut -d'=' -f2 + ) + CVMFS_VERSION_FOUND=$( + docker run ghcr.io/${{ env.REPOSITORY_OWNER }}/${{ matrix.tag }}-${{ matrix.platform }} cvmfs2 --version \ + | head -n 1 | cut -d ' ' -f 3 + ) + FUSEOVERLAYFS_VERSION_EXP=$( + grep "ARG fuseoverlayfsversion=" containers/${{ env.DOCKERFILE }} | cut -d '=' -f 2 + ) + FUSEOVERLAYFS_VERSION_FOUND=$( + docker run ghcr.io/${{ env.REPOSITORY_OWNER }}/${{ matrix.tag }}-${{ matrix.platform }} fuse-overlayfs --version \ + | grep "fuse-overlayfs" | cut -d ' ' -f 3 + ) + CONTAINER="ghcr.io/${{ env.REPOSITORY_OWNER }}/${{ matrix.tag }}-${{ matrix.platform }}" + if [ "${CVMFS_VERSION_EXP}" = "${CVMFS_VERSION_FOUND}" ] && \ + [ "${FUSEOVERLAYFS_VERSION_EXP}" = "${FUSEOVERLAYFS_VERSION_FOUND}" ] + then + echo "Container ${CONTAINER} contains the right versions of CVMFS and fuse-overlayfs!" + exit 0 + else + echo "Error for container ${CONTAINER}" + echo "Expected: CVMFS ${CVMFS_VERSION_EXP} and fuse-overlayfs ${FUSEOVERLAYFS_VERSION_EXP}" + echo "Found: CVMFS ${CVMFS_VERSION_FOUND} and fuse-overlayfs ${FUSEOVERLAYFS_VERSION_FOUND}" + exit 1 + fi + create_manifest: name: Create the Docker manifest needs: build_and_publish diff --git a/.github/workflows/test-containers.yml b/.github/workflows/test-containers.yml deleted file mode 100644 index dab7519c..00000000 --- a/.github/workflows/test-containers.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Test containers - -on: [push, pull_request] - -jobs: - test-client-container: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Build the Docker image - run: docker build . --file containers/Dockerfile.EESSI-client-pilot-centos7 diff --git a/containers/Dockerfile.EESSI-build-node-debian10 b/containers/Dockerfile.EESSI-build-node-debian10 index 47c755f7..d6ee1345 100644 --- a/containers/Dockerfile.EESSI-build-node-debian10 +++ b/containers/Dockerfile.EESSI-build-node-debian10 @@ -1,4 +1,7 @@ ARG cvmfsversion=2.8.1 +# Stick to old version of fuse-overlayfs due to issues with newer versions +# (cfr. https://github.com/containers/fuse-overlayfs/issues/232) +ARG fuseoverlayfsversion=0.3 FROM debian:10.6 AS prepare-deb ARG cvmfsversion @@ -8,6 +11,7 @@ RUN sh /build-or-download-cvmfs-debs.sh ${cvmfsversion} FROM debian:10.6 ARG cvmfsversion +ARG fuseoverlayfsversion COPY --from=prepare-deb /root/deb /root/deb @@ -17,7 +21,7 @@ RUN dpkg -i /root/deb/cvmfs_${cvmfsversion}~1+debian10_$(dpkg --print-architectu /root/deb/cvmfs-fuse3_${cvmfsversion}~1+debian10_$(dpkg --print-architecture).deb \ /root/deb/cvmfs-config-default_latest_all.deb \ /root/deb/cvmfs-config-eessi_latest_all.deb -RUN apt-get install -y fuse-overlayfs +RUN apt-get install -y fuse-overlayfs=${fuseoverlayfsversion}-1 RUN echo 'CVMFS_QUOTA_LIMIT=10000' > /etc/cvmfs/default.local \ && echo 'CVMFS_CLIENT_PROFILE="single"' >> /etc/cvmfs/default.local