1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- ---
- name: container image
- on:
- push:
- pull_request:
- schedule:
- - cron: '0 20 * * 5'
- jobs:
- docker-build:
- runs-on: ubuntu-22.04
- permissions: {packages: write}
- steps:
- - id: meta
- # > "automatic" tag management and OCI Image Format Spec… for labels
- # https://web.archive.org/web/20250103123053/https://docs.docker.com/build/ci/github-actions/manage-tags-labels/
- uses: docker/metadata-action@v5
- with:
- # see comment on `push: true` below
- images: ghcr.io/${{ github.repository_owner }}/systemctl-mqtt
- # https://web.archive.org/web/20250103130404/https://github.com/docker/metadata-action?tab=readme-ov-file#tags-input
- tags: |
- type=semver,pattern={{version}}
- type=ref,event=branch
- type=ref,event=pr
- type=sha,format=long
- type=raw,value=latest,enable=false
- - uses: docker/setup-qemu-action@v3.3.0
- - uses: docker/login-action@v3
- with:
- registry: ghcr.io
- username: ${{ github.actor }}
- password: ${{ secrets.GITHUB_TOKEN }}
- # > setup-buildx action … is not required but recommended using it to be
- # > able to build multi-platform images, export cache, etc.
- # https://web.archive.org/web/20250103122420/https://github.com/marketplace/actions/build-and-push-docker-images
- - uses: docker/setup-buildx-action@v3.8.0
- # > By default, this action uses the Git context so you don't need to use
- # > the actions/checkout action to checkout the repository because this
- # > will be done directly by buildkit. [...]
- # > any file mutation in the steps that precede [...] will be ignored,
- # > including processing of the .dockerignore file
- # https://github.com/marketplace/actions/build-and-push-docker-images
- # > The commit history is not preserved.
- # https://docs.docker.com/engine/reference/commandline/build/#git-repositories
- - uses: docker/build-push-action@v6.12.0
- with:
- build-args: | # git history unavailable (see above)
- SETUPTOOLS_SCM_PRETEND_VERSION=0
- platforms: |
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64
- # > Require approval for all external contributors
- # > All users that are not a member or owner of this repository will
- # > require approval to run workflows.
- # https://github.com/fphammerle/systemctl-mqtt/settings/actions
- push: true
- tags: ${{ steps.meta.outputs.tags }}
- labels: ${{ steps.meta.outputs.labels }}
|