name: Build and Push Image on: push: branches: - main workflow_dispatch: env: REGISTRY_HOST: registry.campbellwireless.net IMAGE_NAME: ${{ github.repository }} jobs: docker-build-and-push: runs-on: ubuntu-latest steps: - name: Checkout env: REPO_URL: ${{ github.server_url }}/${{ github.repository }}.git run: | set -eux git init . git remote add origin "$REPO_URL" auth="$(printf '%s' '${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}' | base64 | tr -d '\n')" git config --local "http.${{ github.server_url }}/.extraheader" "AUTHORIZATION: basic $auth" git fetch --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* git checkout --detach "${{ github.sha }}" - name: Compute image tags id: image run: | echo "sha_short=$(echo '${{ github.sha }}' | cut -c1-12)" >> "$GITHUB_OUTPUT" - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY_HOST }} username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Build and push image uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile push: true platforms: linux/amd64,linux/arm64 tags: | ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}:latest ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}:${{ steps.image.outputs.sha_short }} labels: | org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} org.opencontainers.image.revision=${{ github.sha }}