diff --git a/.gitea/workflows/docker-publish.yml b/.gitea/workflows/docker-publish.yml deleted file mode 100644 index 1dbf985ad..000000000 --- a/.gitea/workflows/docker-publish.yml +++ /dev/null @@ -1,165 +0,0 @@ -name: Docker - -on: - push: - branches: - - main - release: - types: - - published - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - -jobs: - build-php-base: - name: Build PHP base image on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - permissions: - contents: read - packages: write - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-24.04 - arch: amd64 - platform: linux/amd64 - - os: ubuntu-24.04-arm - arch: arm64 - platform: linux/arm64 - steps: - - name: Code checkout - uses: actions/checkout@v4 - - - name: Setup Docker buildx - uses: docker/setup-buildx-action@v3 - - - name: Build the base PHP image - uses: docker/build-push-action@v6 - with: - context: . - file: ./Dockerfile.base - push: false - load: true - platforms: ${{ matrix.platform }} - tags: base-php:${{ matrix.arch }} - cache-from: type=gha,scope=base-php${{ matrix.arch }} - cache-to: type=gha,scope=base-php${{ matrix.arch }} - - - name: Export image to file - run: docker save -o base-php-${{ matrix.arch }}.tar base-php:${{ matrix.arch }} - - - name: Push the docker build to the artifacts - uses: actions/upload-artifact@v4 - with: - name: base-php-${{ matrix.arch }}.tar - path: base-php-${{ matrix.arch }}.tar - retention-days: 7 - - - build-and-push: - name: Build and Push ubuntu-24.04 - runs-on: ubuntu-24.04 - needs: build-php-base - permissions: - contents: read - packages: write - strategy: - fail-fast: false - # Start a temp local registry because workflow can not pull from localy loaded images - services: - registry: - image: registry:2 - ports: - - 5000:5000 - # Always run against a tag, even if the commit into the tag has [docker skip] within the commit message. - if: "!contains(github.ref, 'main') || (!contains(github.event.head_commit.message, 'skip docker') && !contains(github.event.head_commit.message, 'docker skip'))" - steps: - - name: Code checkout - uses: actions/checkout@v4 - - - name: Docker metadata - id: docker_meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - flavor: | - latest=false - tags: | - type=raw,value=latest,enable=${{ github.event_name == 'release' && github.event.action == 'published' && github.event.release.prerelease == false }} - type=ref,event=tag - type=ref,event=branch - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - # We Need to start it in host mode else it can't acces the local registry on port 5000 - - name: Setup Docker buildx - uses: docker/setup-buildx-action@v3 - with: - driver-opts: network=host - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Get Build Information - id: build_info - run: | - echo "version_tag=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT - echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - # Download the base PHP image AMD64 - - uses: actions/download-artifact@v4 - with: - name: base-php-amd64.tar - - # Download the base PHP image ARM64 - - uses: actions/download-artifact@v4 - with: - name: base-php-arm64.tar - - - name: Load base images into local registry - run: | - docker load -i base-php-amd64.tar - docker load -i base-php-arm64.tar - docker tag base-php:amd64 localhost:5000/base-php:amd64 - docker tag base-php:arm64 localhost:5000/base-php:arm64 - docker push localhost:5000/base-php:amd64 - docker push localhost:5000/base-php:arm64 - rm base-php-arm64.tar base-php-amd64.tar - - - name: Build and Push (tag) - uses: docker/build-push-action@v6 - if: "github.event_name == 'release' && github.event.action == 'published'" - with: - context: . - file: ./Dockerfile - push: true - platforms: 'linux/amd64,linux/arm64' - build-args: | - VERSION=${{ steps.build_info.outputs.version_tag }} - labels: ${{ steps.docker_meta.outputs.labels }} - tags: ${{ steps.docker_meta.outputs.tags }} - cache-from: type=gha,scope=tagged${{ matrix.os }} - cache-to: type=gha,scope=tagged${{ matrix.os }},mode=max - - - name: Build and Push (main) - uses: docker/build-push-action@v6 - if: "github.event_name == 'push' && contains(github.ref, 'main')" - with: - context: . - file: ./Dockerfile - push: ${{ github.event_name != 'pull_request' }} - platforms: 'linux/amd64,linux/arm64' - build-args: | - VERSION=dev-${{ steps.build_info.outputs.short_sha }} - labels: ${{ steps.docker_meta.outputs.labels }} - tags: ${{ steps.docker_meta.outputs.tags }} - cache-from: type=gha,scope=${{ matrix.os }} - cache-to: type=gha,scope=${{ matrix.os }},mode=max