From 9bd9763260c76c5b403b407540ac5b20d33e6d4a Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Thu, 5 Sep 2024 13:53:15 +0200 Subject: [PATCH] .github: Add an action for building docker images on-demand There isn't a clear way to tell when the image should be rebuilt automatically. In theory it should be when the relevant debian package gets an update or when a new Debian version is released. In practice, these are annoying to track, so the action is to be invoked on demand. --- .../workflows/build-other-docker-image.yaml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/build-other-docker-image.yaml diff --git a/.github/workflows/build-other-docker-image.yaml b/.github/workflows/build-other-docker-image.yaml new file mode 100644 index 000000000..2da23c8fc --- /dev/null +++ b/.github/workflows/build-other-docker-image.yaml @@ -0,0 +1,50 @@ +name: Build other docker image +on: + workflow_dispatch: + inputs: + image_name: + type: string + description: "Image name (like targetcli-fb), name of the other-dockerfiles subdirectory." + required: true + +env: + REGISTRY: ghcr.io + ORG: flatcar + +jobs: + docker: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: linux/amd64,linux/arm64 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: other-dockerfiles/${{ inputs.image_name }} + push: true + platforms: linux/amd64,linux/arm64 + tags: ${{ env.REGISTRY }}/${{ env.ORG }}/${{ inputs.image_name }}:latest + cache-from: type=gha + cache-to: type=gha,mode=max