From d5026ff258440f30e0666ed1aedcaf1d2c6ad782 Mon Sep 17 00:00:00 2001 From: unbelauscht <58393353+unbelauscht@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:41:18 +0200 Subject: [PATCH] Use docker-meta to generate tags and labels + versioning I updated the workflow to have additional tags based on git tags. This way an administrator can get images by Invidious version tag. --- .github/workflows/container-release.yml | 43 +++++++++++++++++++------ 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/.github/workflows/container-release.yml b/.github/workflows/container-release.yml index 8b3202d7..e5bd5d6d 100644 --- a/.github/workflows/container-release.yml +++ b/.github/workflows/container-release.yml @@ -2,6 +2,8 @@ name: Build and release container on: push: + tags: + - "*.*.*" branches: - "master" paths-ignore: @@ -11,7 +13,6 @@ on: - invidious.service - .git* - .editorconfig - - screenshots/* - .github/ISSUE_TEMPLATE/* - kubernetes/** @@ -52,28 +53,52 @@ jobs: username: ${{ secrets.QUAY_USERNAME }} password: ${{ secrets.QUAY_PASSWORD }} + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: quay.io/invidious/invidious + tags: | + type=sha + type=semver,pattern={{version}} + type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'master') }} + labels: | + quay.expires-after=12w + - name: Build and push Docker AMD64 image for Push Event - if: github.ref == 'refs/heads/master' - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v3 with: context: . file: docker/Dockerfile platforms: linux/amd64 - labels: quay.expires-after=12w + labels: ${{ steps.meta.outputs.labels }} push: true - tags: quay.io/invidious/invidious:${{ github.sha }},quay.io/invidious/invidious:latest + tags: ${{ steps.meta.outputs.tags }} build-args: | "release=1" + - name: Docker meta + id: meta-arm64 + uses: docker/metadata-action@v5 + with: + images: quay.io/invidious/invidious + flavor: | + suffix=-arm64 + tags: | + type=sha + type=semver,pattern={{version}} + type=raw,value=latest-arm64,enable=${{ github.ref == format('refs/heads/{0}', 'master') }} + labels: | + quay.expires-after=12w + - name: Build and push Docker ARM64 image for Push Event - if: github.ref == 'refs/heads/master' - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v3 with: context: . file: docker/Dockerfile.arm64 platforms: linux/arm64/v8 - labels: quay.expires-after=12w + labels: ${{ steps.meta-arm64.outputs.labels }} push: true - tags: quay.io/invidious/invidious:${{ github.sha }}-arm64,quay.io/invidious/invidious:latest-arm64 + tags: ${{ steps.meta-arm64.outputs.tags }} build-args: | "release=1"