diff --git a/.gitea/workflows/build_docker.yaml b/.gitea/workflows/build_docker.yaml index 0eea492..77fdf16 100644 --- a/.gitea/workflows/build_docker.yaml +++ b/.gitea/workflows/build_docker.yaml @@ -6,9 +6,9 @@ env: DOCKER_HOST: tcp://127.0.0.1:2375 jobs: - build: + build-x86_64: name: Build Docker Image - runs-on: docker-x86 + runs-on: docker-x86_64 container: image: docker:dind privileged: true @@ -42,24 +42,71 @@ jobs: username: ${{ gitea.actor }} password: ${{ secrets.PKG_WRITE_TOKEN }} -# - name: Code Checkout -# uses: actions/checkout@v4 -# -# - name: Build and Push Docker Image -# uses: docker/build-push-action@v5 -# with: -# context: . -# file: ./Dockerfile -# push: true -# tags: "${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSIONARCH }}" + - name: Code Checkout + uses: actions/checkout@v4 - manifest: - name: Final Docker Image Manifest - runs-on: docker-x86 + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: "${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSIONARCH }}" + + build-arm64: + name: Build Docker Image + runs-on: docker-arm64 container: image: docker:dind privileged: true - needs: build + env: + ARCH: arm64 + VERSIONARCH: ${{ env.VERSION }}-${{ env.ARCH }} + + steps: + - name: Environment Setup + run: | + # If we have a proxy use it + if [ -n "${HTTP_PROXY}" ]; then echo "HTTP PROXY [${HTTP_PROXY}]"; sed -i -e s'/https/http/' /etc/apk/repositories; fi + # Some pre-reqs + apk add git curl nodejs + # Start docker + ( dockerd --host=tcp://0.0.0.0:2375 --tls=false & ) && sleep 3 + ## Some debugging info + # docker info && docker version + # env|sort + + - name: Registry FQDN Setup + id: registry + run: | + registry=${{ github.server_url }} + echo "registry=${registry##http*://}" >> "$GITHUB_OUTPUT" + + - name: Container Registry Login + uses: docker/login-action@v2 + with: + registry: ${{ steps.registry.outputs.registry }} + username: ${{ gitea.actor }} + password: ${{ secrets.PKG_WRITE_TOKEN }} + + - name: Code Checkout + uses: actions/checkout@v4 + + - name: Build and Push Docker Image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: "${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSIONARCH }}" + + manifest: + name: Final Docker Image Manifest + runs-on: docker-x86_64 + container: + image: docker:dind + privileged: true + needs: [build-x86_64,build-arm64] steps: - name: Environment Setup @@ -87,6 +134,6 @@ jobs: - name: Build Docker Manifest run: | docker manifest create ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }} \ - ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-x86_64 - # ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-armv7l + ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-x86_64 \ + ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}-arm64 docker manifest push --purge ${{ steps.registry.outputs.registry }}/${{ env.GITHUB_REPOSITORY }}:${{ env.VERSION }}