name: build-image on: [push] jobs: build-image: name: build-image runs-on: dind-rootless container: image: ghcr.io/catthehacker/ubuntu:act-latest # image: gitea/runner-images:ubuntu-latest # image: gitea.example.com/xyz/ubuntu-act:22.04 # credentials: # username: ${{ gitea.actor }} # password: ${{ secrets.GA_TOKEN }} steps: - uses: actions/checkout@v4 - name: Install QEMU run: | sudo apt-get update sudo apt-get install -y qemu-user-static # # https://github.com/docker/metadata-action # - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: | code.spamasaurus.com/djpbessems/alpine tags: | type=schedule,pattern={{date 'YYYYMMDDHHMM'}} type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha - name: Set up Docker Context for Buildx id: buildx-context run: | export DOCKER_HOST=tcp://docker:2376/ export DOCKER_TLS_CERTDIR="/certs" export DOCKER_TLS_VERIFY=1 export DOCKER_CERT_PATH="/certs/client" docker context create builders # https://github.com/docker/setup-buildx-action # https://docs.docker.com/engine/reference/commandline/cli/#environment-variables - name: Setup Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 with: # buildkitd-flags: --debug endpoint: builders env: DOCKER_HOST: "tcp://docker:2376/" DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: "/certs/client" # # Debug # - name: Available platforms run: echo ${{ steps.buildx.outputs.platforms }} # # https://github.com/docker/login-action # - name: Login to Gitea uses: docker/login-action@v3 with: registry: code.spamasaurus.com username: ${{ gitea.actor }} password: ${{ secrets.GIT_APIKEY }} # # https://github.com/docker/build-push-action # - name: Build and push the image if: gitea.event_name != 'pull_request' uses: docker/build-push-action@v5 with: push: ${{ gitea.event_name != 'pull_request' }} platforms: linux/amd64 context: containers/test tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} env: DOCKER_HOST: "tcp://docker:2376/" DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: "/certs/client" # # # - name: Inspect run: | docker buildx imagetools inspect gitea.example.com/xyz/ubuntu-act:22.04 env: DOCKER_HOST: "tcp://docker:2376/" DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_VERIFY: 1 DOCKER_CERT_PATH: "/certs/client"