diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-29 15:59:17 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-29 16:05:48 +0000 |
| commit | 8c2c8c1e0370ba20f94e766bef334c39db9cf433 (patch) | |
| tree | 6abb652052a85e9b5c3abf8470d8283c17d11100 /.github | |
| parent | 552a15a5401aba1326fa1e0ed4dad2d9dc95834e (diff) | |
| download | karakeep-8c2c8c1e0370ba20f94e766bef334c39db9cf433.tar.zst | |
docker: Build docker images on every push to main
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/docker.yml | 54 |
1 files changed, 35 insertions, 19 deletions
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 |
