diff --git a/.gitea/workflows/docker-build-push.yml b/.gitea/workflows/docker-build-push.yml index 80082db..3f97286 100644 --- a/.gitea/workflows/docker-build-push.yml +++ b/.gitea/workflows/docker-build-push.yml @@ -13,22 +13,21 @@ on: - 'main' tags: - 'v*' - pull_request: - branches: - - 'main' - -env: - REGISTRY_HOST: '{{ secrets.REGISTRY_HOST }}' - REGISTRY_USERNAME: '{{ secrets.REGISTRY_USERNAME }}' - REGISTRY_PASSWORD: '{{ secrets.REGISTRY_PASSWORD }}' - IMAGE_NAME: "wavyzz/sample-image" - CONTEXT_PATH: "." - DOCKERFILE_PATH: "./Dockerfile" jobs: build-and-push: name: Build and Push Docker Image runs-on: ubuntu-latest + env: + REGISTRY_HOST: ${{ secrets.REGISTRY_HOST }} + REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} + REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} + IMAGE_NAME: "wavyzz/sample-image" + CONTEXT_PATH: "." + DOCKERFILE_PATH: "./Dockerfile" + PLATFORMS: "linux/amd64,linux/arm64" + CACHE_REF: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}:buildcache + GITEA_TOKEN: ${{ secrets.CI_GITEA_TOKEN }} steps: - name: Checkout repository @@ -49,7 +48,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - github-token: b60bc646e9ce87d4fffef5ba1501347ea21bdd8f + github-token: ${{ env.GITEA_TOKEN }} images: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }} tags: | type=ref,event=branch @@ -76,8 +75,11 @@ jobs: context: ${{ env.CONTEXT_PATH }} file: ${{ env.DOCKERFILE_PATH }} push: true + platforms: ${{ env.PLATFORMS }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + cache-from: type=registry,ref=${{ env.CACHE_REF }} + cache-to: type=registry,ref=${{ env.CACHE_REF }},mode=max - name: Image details run: | diff --git a/examples/docker-build-push/Dockerfile b/Dockerfile similarity index 100% rename from examples/docker-build-push/Dockerfile rename to Dockerfile diff --git a/examples/docker-build-push/.gitea/workflows/docker-build-push.yml b/examples/docker-build-push/.gitea/workflows/docker-build-push.yml deleted file mode 100644 index 80082db..0000000 --- a/examples/docker-build-push/.gitea/workflows/docker-build-push.yml +++ /dev/null @@ -1,87 +0,0 @@ -# === Workflow Doc ========================================================= -# Name: Docker build -# Purpose: Build & push a Docker image -# Requires: -# - -# ========================================================================== - -name: Build external repo image - -on: - push: - branches: - - 'main' - tags: - - 'v*' - pull_request: - branches: - - 'main' - -env: - REGISTRY_HOST: '{{ secrets.REGISTRY_HOST }}' - REGISTRY_USERNAME: '{{ secrets.REGISTRY_USERNAME }}' - REGISTRY_PASSWORD: '{{ secrets.REGISTRY_PASSWORD }}' - IMAGE_NAME: "wavyzz/sample-image" - CONTEXT_PATH: "." - DOCKERFILE_PATH: "./Dockerfile" - -jobs: - build-and-push: - name: Build and Push Docker Image - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v5 - - - name: Define branch helpers - id: branch - run: | - DEFAULT="${{ github.event.repository.default_branch }}" - CURRENT="${{ github.ref_name }}" - if [ "$DEFAULT" = "$CURRENT" ]; then - echo "is_default_branch=true" >> $GITHUB_OUTPUT - else - echo "is_default_branch=false" >> $GITHUB_OUTPUT - fi - - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@v5 - with: - github-token: b60bc646e9ce87d4fffef5ba1501347ea21bdd8f - images: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }} - tags: | - type=ref,event=branch - type=ref,event=tag - type=sha - type=raw,value=latest,enable=${{ steps.branch.outputs.is_default_branch }} - - - name: Set up QEMU # for multi-platform builds - uses: docker/setup-qemu-action@v3 - - - name: Set up Docker Buildx # for advanced builds - uses: docker/setup-buildx-action@v3 - - - name: Log in to registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY_HOST }} - username: ${{ env.REGISTRY_USERNAME }} - password: ${{ env.REGISTRY_PASSWORD }} - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: ${{ env.CONTEXT_PATH }} - file: ${{ env.DOCKERFILE_PATH }} - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - - name: Image details - run: | - echo "Image pushed: ${{ env.REGISTRY_HOST }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.tags }}" - echo "Labels: ${{ steps.meta.outputs.labels }}" - echo "Tags: ${{ steps.meta.outputs.tags }}" - echo "Digest: ${{ steps.meta.outputs.digest }}"