From 5541af4f4b7b958a12c69a54a6033e0546e7e172 Mon Sep 17 00:00:00 2001 From: Mehdi Benadel Date: Sat, 24 Dec 2022 16:44:58 +0100 Subject: [PATCH] Updating workflow --- .github/workflows/build-docker.yml | 52 +++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index f88ba240c..ad99a8aad 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -2,38 +2,68 @@ name: Build Docker image on: + workflow_dispatch: push: branches: - dev + tags: + - '*' + pull_request: + paths: + - .github/workflows/build-docker.yml + - contrib/docker/Dockerfile.apache +permissions: + contents: read jobs: - build_regular_docker: + build-docker: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@v3 + + - name: Docker Lint + uses: hadolint/hadolint-action@v3.0.0 + with: + dockerfile: contrib/docker/Dockerfile.apache + failure-threshold: error - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Login to DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_TOKEN }} + if: github.event_name != 'pull_request' + + - name: Fetch tags + uses: docker/metadata-action@v4 + id: meta + with: + images: ${{ secrets.DOCKER_HUB_ORGANISATION }}/pixelfed + flavor: | + latest=auto + tags: | + type=edge,branch=dev + type=pep440,pattern={{raw}} + type=pep440,pattern=v{{major}}.{{minor}} + type=ref,event=pr - name: Build and push Docker image - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: context: . - file: ./contrib/docker/Dockerfile.apache + file: contrib/docker/Dockerfile.apache platforms: linux/amd64,linux/arm64,linux/arm/v7 - push: true - tags: ${{ secrets.DOCKER_HUB_ORGANISATION }}/pixelfed:latest - cache-from: type=registry,ref=user/app:latest - cache-to: type=inline + builder: ${{ steps.buildx.outputs.name }} + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + cache-from: type=gha + cache-to: type=gha,mode=max