aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-02-29 15:59:17 +0000
committerMohamedBassem <me@mbassem.com>2024-02-29 16:05:48 +0000
commit8c2c8c1e0370ba20f94e766bef334c39db9cf433 (patch)
tree6abb652052a85e9b5c3abf8470d8283c17d11100 /.github
parent552a15a5401aba1326fa1e0ed4dad2d9dc95834e (diff)
downloadkarakeep-8c2c8c1e0370ba20f94e766bef334c39db9cf433.tar.zst
docker: Build docker images on every push to main
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/docker.yml54
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