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.
This commit is contained in:
unbelauscht 2023-10-10 20:41:18 +02:00 committed by unbelauscht
parent d76fed5850
commit d5026ff258

View File

@ -2,6 +2,8 @@ name: Build and release container
on: on:
push: push:
tags:
- "*.*.*"
branches: branches:
- "master" - "master"
paths-ignore: paths-ignore:
@ -11,7 +13,6 @@ on:
- invidious.service - invidious.service
- .git* - .git*
- .editorconfig - .editorconfig
- screenshots/* - screenshots/*
- .github/ISSUE_TEMPLATE/* - .github/ISSUE_TEMPLATE/*
- kubernetes/** - kubernetes/**
@ -52,28 +53,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
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 - name: Build and push Docker AMD64 image for Push Event
if: github.ref == 'refs/heads/master' uses: docker/build-push-action@v3
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
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 - name: Build and push Docker ARM64 image for Push Event
if: github.ref == 'refs/heads/master' uses: docker/build-push-action@v3
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"