name: Build container image on: push: branches: - master tags: - '*' # This triggers the action on all tag pushes jobs: publish-docker-image: if: github.repository_owner == 'gbdev' runs-on: ubuntu-latest permissions: # So that the workflow can write to the ghcr an upload there packages: write steps: - name: Checkout repo uses: actions/checkout@v4 - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push the master container image # When a commit is pushed to master if: github.ref == 'refs/heads/master' run: | COMMIT_HASH=$(git rev-parse --short HEAD) sed -i "2i LABEL org.opencontainers.image.description=\"RGBDS container image, containing the git version master:$COMMIT_HASH\"" Dockerfile docker build . --tag ghcr.io/gbdev/rgbds:master docker push ghcr.io/gbdev/rgbds:master - name: Build and push the version-tagged container image # When a tag is pushed if: startsWith(github.ref, 'refs/tags/') run: | TAG_NAME=${GITHUB_REF#refs/tags/} sed -i "2i LABEL org.opencontainers.image.description=\"RGBDS container image for the release version $TAG_NAME\"" Dockerfile docker build . --tag ghcr.io/gbdev/rgbds:$TAG_NAME docker push ghcr.io/gbdev/rgbds:$TAG_NAME