diff --git a/.github/workflows/interop-test.yml b/.github/workflows/interop-test.yml index c2f07a47453..8fa00f0a8f6 100644 --- a/.github/workflows/interop-test.yml +++ b/.github/workflows/interop-test.yml @@ -21,19 +21,12 @@ jobs: - uses: docker/setup-buildx-action@v3 - # This uses the same S3 cache as all test-plans images. Because we use `cargo-chef` in the Dockerfile, we have a layer available with all dependencies built. - name: Build ${{ matrix.flavour }} image - run: | - docker buildx build \ - --load \ - --cache-to type=s3,mode=max,bucket=libp2p-by-tf-aws-bootstrap,region=us-east-1,prefix=buildCache,name=${{ matrix.flavour }}-rust-libp2p-head \ - --cache-from type=s3,mode=max,bucket=libp2p-by-tf-aws-bootstrap,region=us-east-1,prefix=buildCache,name=${{ matrix.flavour }}-rust-libp2p-head \ - -t ${{ matrix.flavour }}-rust-libp2p-head \ - . \ - -f interop-tests/Dockerfile.${{ matrix.flavour }} + run: ./scripts/build-interop-image.sh env: AWS_ACCESS_KEY_ID: ${{ vars.TEST_PLANS_BUILD_CACHE_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.TEST_PLANS_BUILD_CACHE_KEY }} + FLAVOUR: ${{ matrix.flavour }} - name: Run ${{ matrix.flavour }} tests uses: libp2p/test-plans/.github/actions/run-interop-ping-test@master diff --git a/scripts/build-interop-image.sh b/scripts/build-interop-image.sh new file mode 100755 index 00000000000..28a8db9188d --- /dev/null +++ b/scripts/build-interop-image.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# This uses the same S3 cache as all test-plans images. Because we use `cargo-chef` in the Dockerfile, we have a layer available with all dependencies built. + +CACHE_TO="" + +# If we have credentials, write to cache +if [[ -n "${AWS_SECRET_ACCESS_KEY}" ]]; then + CACHE_TO="--cache-to type=s3,mode=max,bucket=libp2p-by-tf-aws-bootstrap,region=us-east-1,prefix=buildCache,name=${FLAVOUR}-rust-libp2p-head" +fi + +docker buildx build \ + --load \ + $CACHE_TO \ + --cache-from type=s3,mode=max,bucket=libp2p-by-tf-aws-bootstrap,region=us-east-1,prefix=buildCache,name=${FLAVOUR}-rust-libp2p-head \ + -t ${FLAVOUR}-rust-libp2p-head \ + . \ + -f interop-tests/Dockerfile.${FLAVOUR}