From a5e3f4531c4920451246eecd0b751d32e8620f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 25 Jun 2021 12:54:36 +0200 Subject: [PATCH 1/6] add test step for containers --- .github/workflows/build-publish-containers.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/build-publish-containers.yml b/.github/workflows/build-publish-containers.yml index 32d4c8ec..b1f2d294 100644 --- a/.github/workflows/build-publish-containers.yml +++ b/.github/workflows/build-publish-containers.yml @@ -78,6 +78,23 @@ 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) + if [ "${CVMFS_VERSION_EXP}" = "${CVMFS_VERSION_FOUND}" ] && [ "${FUSEOVERLAYFS_VERSION_EXP}" = "${FUSEOVERLAYFS_VERSION_FOUND}" ] + then + echo "Containers contain the right versions of CVMFS and fuse-overlayfs!" + exit 0 + else + echo "Error for container ghcr.io/${{ env.REPOSITORY_OWNER }}/${{ matrix.tag }}-${{ matrix.platform }}!" + 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 From 01e01157db40ec19c33197a1ea194189305fc852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 25 Jun 2021 12:55:04 +0200 Subject: [PATCH 2/6] remove container build test, already done in other workflow --- .github/workflows/test-containers.yml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 .github/workflows/test-containers.yml 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 From 7a64b9250bf2989117d323709022ba1a3b1bf286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 25 Jun 2021 12:58:50 +0200 Subject: [PATCH 3/6] install specific version of fuse-overlayfs --- containers/Dockerfile.EESSI-build-node-debian10 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/containers/Dockerfile.EESSI-build-node-debian10 b/containers/Dockerfile.EESSI-build-node-debian10 index 47c755f7..9c6c3133 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} RUN echo 'CVMFS_QUOTA_LIMIT=10000' > /etc/cvmfs/default.local \ && echo 'CVMFS_CLIENT_PROFILE="single"' >> /etc/cvmfs/default.local From cc4e19fb43a106afdaff0589bed5cbbc7a129e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 25 Jun 2021 13:02:03 +0200 Subject: [PATCH 4/6] trigger workflow on PRs that make changes in any Dockerfile --- .github/workflows/build-publish-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-publish-containers.yml b/.github/workflows/build-publish-containers.yml index b1f2d294..c945d1cf 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: From 0a541cff8009540d73507cdc0b123f32ade7a381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 25 Jun 2021 13:13:02 +0200 Subject: [PATCH 5/6] add -1 to version of fuse-overlayfs --- containers/Dockerfile.EESSI-build-node-debian10 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/Dockerfile.EESSI-build-node-debian10 b/containers/Dockerfile.EESSI-build-node-debian10 index 9c6c3133..d6ee1345 100644 --- a/containers/Dockerfile.EESSI-build-node-debian10 +++ b/containers/Dockerfile.EESSI-build-node-debian10 @@ -21,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=${fuseoverlayfsversion} +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 From 9b00ef7f0c4cdd84b32f6fe311c676ecc37c5a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 25 Jun 2021 13:41:56 +0200 Subject: [PATCH 6/6] shorten some lines --- .../workflows/build-publish-containers.yml | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-publish-containers.yml b/.github/workflows/build-publish-containers.yml index c945d1cf..1d8c3e95 100644 --- a/.github/workflows/build-publish-containers.yml +++ b/.github/workflows/build-publish-containers.yml @@ -80,16 +80,28 @@ jobs: - 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) - if [ "${CVMFS_VERSION_EXP}" = "${CVMFS_VERSION_FOUND}" ] && [ "${FUSEOVERLAYFS_VERSION_EXP}" = "${FUSEOVERLAYFS_VERSION_FOUND}" ] + 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 "Containers contain the right versions of CVMFS and fuse-overlayfs!" + echo "Container ${CONTAINER} contains the right versions of CVMFS and fuse-overlayfs!" exit 0 else - echo "Error for container ghcr.io/${{ env.REPOSITORY_OWNER }}/${{ matrix.tag }}-${{ matrix.platform }}!" + 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