From d0171d719bee30799d0db4b33e9cd5e668c2fdf2 Mon Sep 17 00:00:00 2001 From: Florian Piesche Date: Wed, 1 Jun 2022 23:25:05 +0100 Subject: [PATCH] Use docker/metadata-action This will generate tags based on specific patterns, as well as add metadata labels to the images as per [the OpenContainers spec](https://github.com/opencontainers/image-spec/blob/main/annotations.md). --- .github/workflows/docker.yml | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6cd9cc6..5219491 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -20,12 +20,15 @@ jobs: steps: - name: checkout code uses: actions/checkout@v2 + - name: Set hash id: vars run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)" + - name: Get current date id: date run: echo "::set-output name=date::$(date +'%Y-%m-%d')" + - name: create-json id: create-json uses: jsdaniell/create-json@1.1.2 @@ -33,15 +36,35 @@ jobs: name: "version.json" json: '{"type": "docker", "tag": "${{secrets.DOCKERHUB_MASTER_TAG}}", "commit": "${{ steps.vars.outputs.sha_short }}", "date": "${{ steps.date.outputs.date }}"}' dir: 'backend/' + - name: setup platform emulator uses: docker/setup-qemu-action@v1 + - name: setup multi-arch docker build uses: docker/setup-buildx-action@v1 + + - name: Generate Docker image metadata + id: docker-meta + uses: docker/metadata-action@v4 + # Defaults: + # DOCKERHUB_USERNAME : tzahi12345 + # DOCKERHUB_REPO : youtubedl-material + # DOCKERHUB_MASTER_TAG: nightly + with: + images: | + ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPO }} + ghcr.io/${{ github.repository_owner }}/${{ secrets.DOCKERHUB_REPO }} + tags: | + type=raw,${{secrets.DOCKERHUB_MASTER_TAG}}-{{ date 'YYYY-MM-DD' }} + type=raw,${{secrets.DOCKERHUB_MASTER_TAG}} + type=sha,prefix=sha-,format=short + - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: build & push images uses: docker/build-push-action@v2 with: @@ -49,8 +72,5 @@ jobs: file: ./Dockerfile platforms: linux/amd64,linux/arm,linux/arm64/v8 push: true - # Defaults: - # DOCKERHUB_USERNAME : tzahi12345 - # DOCKERHUB_REPO : youtubedl-material - # DOCKERHUB_MASTER_TAG: nightly - tags: ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPO }}:${{secrets.DOCKERHUB_MASTER_TAG}} + tags: ${{ steps.docker-meta.outputs.tags }} + labels: ${{ steps.docker-meta.outputs.labels }}