ci: delete untagged container artifacts #43
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
- name: Delete all containers from repository without tags | |
uses: Chizkiyahu/delete-untagged-ghcr-action@v3 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
repository_owner: ${{ github.repository_owner }} | |
repository: ${{ github.repository }} | |
untagged_only: true | |
owner_type: org # or user | |