From 8c2c8c1e0370ba20f94e766bef334c39db9cf433 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Thu, 29 Feb 2024 15:59:17 +0000 Subject: docker: Build docker images on every push to main --- .github/workflows/docker.yml | 54 ++++++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 19 deletions(-) (limited to '.github') diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8dd4aa2d..27c41d7e 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -3,8 +3,14 @@ on: release: types: - created + push: + branches: + - main jobs: push: + strategy: + matrix: + package: [web, workers] runs-on: ubuntu-latest permissions: packages: write @@ -12,25 +18,35 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Build image - run: | - OWNER=$(echo ${{github.repository_owner}} | tr '[A-Z]' '[a-z]') - TAG="${{github.event.release.name}}" - docker build . --target workers --tag ghcr.io/$OWNER/hoarder-workers:$TAG -f docker/Dockerfile - docker build . --target web --tag ghcr.io/$OWNER/hoarder-web:$TAG -f docker/Dockerfile + - name: Login to Github Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Log in to registry - # This is where you will update the PAT to GITHUB_TOKEN - run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin + - name: Build ${{ matrix.package }} + uses: docker/build-push-action@v5 + with: + context: . + file: docker/Dockerfile + target: ${{ matrix.package }} + push: true + tags: ghcr.io/mohamedbassem/hoarder-${{ matrix.package }}:latest + cache-from: type=gha + cache-to: type=gha,mode=max - - name: Push image - run: | - OWNER=$(echo ${{github.repository_owner}} | tr '[A-Z]' '[a-z]') - TAG="${{github.event.release.name}}" - docker tag ghcr.io/$OWNER/hoarder-workers:$TAG ghcr.io/$OWNER/hoarder-workers:latest - docker tag ghcr.io/$OWNER/hoarder-web:$TAG ghcr.io/$OWNER/hoarder-web:latest - docker push ghcr.io/$OWNER/hoarder-workers:$TAG - docker push ghcr.io/$OWNER/hoarder-web:$TAG - docker push ghcr.io/$OWNER/hoarder-workers:latest - docker push ghcr.io/$OWNER/hoarder-web:latest + - name: Build ${{ matrix.package }} (release) + uses: docker/build-push-action@v5 + if: github.event_name == 'release' + with: + context: . + file: docker/Dockerfile + target: ${{ matrix.package }} + push: true + tags: ghcr.io/mohamedbassem/hoarder-${{ matrix.package }}:${{github.event.release.name}} + cache-from: type=gha + cache-to: type=gha,mode=max -- cgit v1.2.3-70-g09d2