From bd7cfc17a2821639b087a89c769e7a952f09e265 Mon Sep 17 00:00:00 2001 From: Eugene Morozov Date: Sun, 8 Dec 2024 13:54:01 +0200 Subject: [PATCH] Try to build separate --- .gitea/workflows/build.yml | 98 ++++++++++++++++++++++++++++++++------ 1 file changed, 83 insertions(+), 15 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index f1f09675..ae78e477 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -8,36 +8,29 @@ on: - cron: '@monthly' jobs: - build-and-push-image: + build-amd64: runs-on: linux_amd - name: Build and Push - + name: Build AMD64 container: image: catthehacker/ubuntu:act-latest - env: DOCKER_ORG: technocloud-public RUNNER_TOOL_CACHE: /toolcache - strategy: matrix: python-version: ['3.10', '3.11', '3.12', '3.13'] - steps: - name: Checkout uses: actions/checkout@v4 with: github-server-url: https://gitea.technocloud.ee - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker BuildX uses: docker/setup-buildx-action@v3 with: - platforms: linux/amd64,linux/arm64 - driver-opts: | - max-concurrent=1 + platforms: linux/amd64 + driver-opts: | + max-concurrent=1 - name: Login to DockerHub uses: docker/login-action@v3 @@ -51,11 +44,86 @@ jobs: run: | echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT - - name: Build and Push + - name: Build and Push AMD64 uses: docker/build-push-action@v5 with: context: . file: Dockerfile.python${{ matrix.python-version }} - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 push: true - tags: gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }} + tags: gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }}-amd64 + + build-arm64: + runs-on: ubuntu-latest + name: Build ARM64 + container: + image: catthehacker/ubuntu:act-latest + env: + DOCKER_ORG: technocloud-public + RUNNER_TOOL_CACHE: /toolcache + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12', '3.13'] + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + github-server-url: https://gitea.technocloud.ee + + - name: Set up Docker BuildX + uses: docker/setup-buildx-action@v3 + with: + platforms: linux/arm64 + + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + registry: gitea.technocloud.ee + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Meta + id: meta + run: | + echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT + + - name: Build and Push ARM64 + uses: docker/build-push-action@v5 + with: + context: . + file: Dockerfile.python${{ matrix.python-version }} + platforms: linux/arm64 + push: true + tags: gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }}-arm64 + + create-manifest: + needs: [build-amd64, build-arm64] + runs-on: linux_amd + name: Create Multi-arch Manifest + container: + image: catthehacker/ubuntu:act-latest + env: + DOCKER_ORG: technocloud-public + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12', '3.13'] + steps: + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + registry: gitea.technocloud.ee + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Get Meta + id: meta + run: | + echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT + + - name: Create and Push Manifest + run: | + docker manifest create \ + gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }} \ + gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }}-amd64 \ + gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }}-arm64 + docker manifest push gitea.technocloud.ee/${{ env.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:python${{ matrix.python-version }} \ No newline at end of file