Test runners: "docker/setup-buildx-action" input "install" deprecation

What to do about “docker/setup-buildx-action” input “install” deprecation in test runner repositories?

The deprecation happened these days. It asks to use docker buildx build - which should be done when not using the Docker GitHub actions. That is usually the case for the test runners in the Exercism tracks - building the images locally and in CI for testing the image before pushing it.

Has anyone understood the problem well enough to help with the decision what to do? Adding buildx to run-tests-in-docker.sh would require buildx locally? Provide a script without docker build for CI? Simply do nothing?

install input is deprecated and will be removed in a future release. This input is not necessary when building with our actions like docker/build-push-action or docker/bake-action. If you are still building with the docker build command then you can set the BUILDX_BUILDER environment variable, or you can just directly invoke the docker buildx build command

Files like

javascript-test-runner/.github/workflows/ci.js.yml
javascript-test-runner/.github/workflows/pr.ci.js.yml
php-test-runner/.github/workflows/smoketest.yml

use docker/build-push-action

So by my understanding we can simply have

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f

and omit

        with:
          install: true

That’s not what I was unsure about :smile: The test-runners use bin/run-tests-in-docker.sh inside GitHub CI, which uses docker build directly.

The file can run in CI and locally. Currently, in CI, this leads to re-using the docker cached image from docker/setup-buildx-action. And locally builds the images using the default setup.

docker buildx build would kill local use, because buildx is a plugin to install additionally. And in CI it may not re-use the cache anymore. But I don’t know.