docker-meta generate versioned docker tags & OCI labels (#4161)

* 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.

* Use current date as image tag

* Switch to YYYY.MM.DD-SHA_SHORT

* Use short sha to follow existing tagging style

* revert build-push-actions to v5

---------

Co-authored-by: panda <panda@purplehaze.com>
This commit is contained in:
unbelauscht 2023-12-06 12:19:21 +01:00 committed by GitHub
parent d76fed5850
commit 9e970fe4bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,7 +11,6 @@ on:
- invidious.service - invidious.service
- .git* - .git*
- .editorconfig - .editorconfig
- screenshots/* - screenshots/*
- .github/ISSUE_TEMPLATE/* - .github/ISSUE_TEMPLATE/*
- kubernetes/** - kubernetes/**
@ -52,28 +51,52 @@ jobs:
username: ${{ secrets.QUAY_USERNAME }} username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }} password: ${{ secrets.QUAY_PASSWORD }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: quay.io/invidious/invidious
tags: |
type=sha,format=short
type=sha,format=short,prefix={{date 'YYYY.MM.DD'}}-,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
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 - 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@v5
with: with:
context: . context: .
file: docker/Dockerfile file: docker/Dockerfile
platforms: linux/amd64 platforms: linux/amd64
labels: quay.expires-after=12w labels: ${{ steps.meta.outputs.labels }}
push: true push: true
tags: quay.io/invidious/invidious:${{ github.sha }},quay.io/invidious/invidious:latest tags: ${{ steps.meta.outputs.tags }}
build-args: | build-args: |
"release=1" "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,format=short
type=sha,format=short,prefix={{date 'YYYY.MM.DD'}}-,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
labels: |
quay.expires-after=12w
- name: Build and push Docker ARM64 image for Push Event - 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@v5
with: with:
context: . context: .
file: docker/Dockerfile.arm64 file: docker/Dockerfile.arm64
platforms: linux/arm64/v8 platforms: linux/arm64/v8
labels: quay.expires-after=12w labels: ${{ steps.meta-arm64.outputs.labels }}
push: true push: true
tags: quay.io/invidious/invidious:${{ github.sha }}-arm64,quay.io/invidious/invidious:latest-arm64 tags: ${{ steps.meta-arm64.outputs.tags }}
build-args: | build-args: |
"release=1" "release=1"