summaryrefslogtreecommitdiff
path: root/.forgejo/workflows/docker-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.forgejo/workflows/docker-ci.yml')
-rw-r--r--.forgejo/workflows/docker-ci.yml42
1 files changed, 30 insertions, 12 deletions
diff --git a/.forgejo/workflows/docker-ci.yml b/.forgejo/workflows/docker-ci.yml
index 49a885f..734e11e 100644
--- a/.forgejo/workflows/docker-ci.yml
+++ b/.forgejo/workflows/docker-ci.yml
@@ -10,23 +10,41 @@ on:
jobs:
build:
runs-on: docker
-
steps:
- name: Checkout code
uses: actions/checkout@v4
- - name: Build Docker image
- run: docker build -t ${{ env.REPO_URL }}/${{ github.repository }}:latest .
-
- - name: Tag image with commit SHA
- run: docker tag ${{ env.REPO_URL }}/${{ github.repository }}:latest ${{ env.REPO_URL }}/${{ github.repository }}:${{ github.sha }}
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
- name: Login to Forgejo Container Registry
if: github.event_name != 'pull_request'
- run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ${{ env.REPO_URL }} -u ${{ github.actor }} --password-stdin
+ uses: docker/login-action@v3
+ with:
+ registry: ${{ env.REPO_URL }}
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
- - name: Push Docker images
- if: github.event_name != 'pull_request'
- run: |
- docker push ${{ env.REPO_URL }}/${{ github.repository }}:latest
- docker push ${{ env.REPO_URL }}/${{ github.repository }}:${{ github.sha }}
+ - name: Extract metadata
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: ${{ env.REPO_URL }}/${{ github.repository }}
+ tags: |
+ type=ref,event=branch
+ type=ref,event=pr
+ type=semver,pattern={{version}}
+ type=semver,pattern={{major}}.{{minor}}
+ type=sha,prefix={{branch}}-
+ type=raw,value=latest,enable={{is_default_branch}}
+
+ - name: Build and push Docker image
+ uses: docker/build-push-action@v5
+ with:
+ context: .
+ file: ./Dockerfile
+ push: ${{ github.event_name != 'pull_request' }}
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ cache-from: type=gha
+ cache-to: type=gha,mode=max