From c711f1ad057cadb836310a240ea93aef2bd86a31 Mon Sep 17 00:00:00 2001 From: Tindy X <49061470+tindy2013@users.noreply.github.com> Date: Wed, 3 Apr 2024 16:24:31 +0800 Subject: [PATCH] Update Docker build workflow --- .github/workflows/docker.yml | 136 ++++------------------------------- 1 file changed, 14 insertions(+), 122 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 705796b..438a0c2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -13,11 +13,19 @@ env: REGISTRY_IMAGE: tindy2013/subconverter jobs: - gh_builds: - runs-on: ubuntu-latest + build: strategy: matrix: - platform: [linux/amd64, linux/386] + include: + - platform: linux/amd64 + os: ubuntu-latest + - platform: linux/386 + os: ubuntu-latest + - platform: linux/arm/v7 + os: [self-hosted, linux, ARM] + - platform: linux/arm64 + os: [self-hosted, linux, ARM64] + runs-on: ${{ matrix.os }} name: Build ${{ matrix.platform }} Image steps: - name: Prepare @@ -78,125 +86,9 @@ jobs: if-no-files-found: error retention-days: 1 - armv7_build: - name: Build ARMv7 Image - runs-on: [self-hosted, linux, ARM] - steps: - - name: Checkout base - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY_IMAGE }} - tags: | - type=semver,pattern={{version}} - type=raw,value=latest,enable={{is_default_branch}} - - - name: Docker login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Get commit SHA - if: github.ref == 'refs/heads/master' - id: vars - run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: Build and export - id: build - uses: docker/build-push-action@v5 - with: - platforms: linux/arm/v7 - context: scripts/ - labels: ${{ steps.meta.outputs.labels }} - build-args: | - SHA=${{ steps.vars.outputs.sha_short }} - THREADS=4 - outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true - - - name: Export digest - run: | - mkdir -p /tmp/digests - digest="${{ steps.build.outputs.digest }}" - touch "/tmp/digests/${digest#sha256:}" - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: digest-arm-v7 - path: /tmp/digests/* - if-no-files-found: error - retention-days: 1 - - arm64_build: - name: Build ARM64 Image - runs-on: [self-hosted, linux, ARM64] - steps: - - name: Checkout base - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Docker meta - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY_IMAGE }} - tags: | - type=semver,pattern={{version}} - type=raw,value=latest,enable={{is_default_branch}} - - - name: Docker login - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Get commit SHA - if: github.ref == 'refs/heads/master' - id: vars - run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: Build and export - id: build - uses: docker/build-push-action@v5 - with: - platforms: linux/arm64 - context: scripts/ - labels: ${{ steps.meta.outputs.labels }} - build-args: | - SHA=${{ steps.vars.outputs.sha_short }} - THREADS=4 - outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true - - - name: Export digest - run: | - mkdir -p /tmp/digests - digest="${{ steps.build.outputs.digest }}" - touch "/tmp/digests/${digest#sha256:}" - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: digest-arm64 - path: /tmp/digests/* - if-no-files-found: error - retention-days: 1 - - build: - name: Build - needs: [gh_builds, armv7_build, arm64_build] + merge: + name: Merge + needs: build runs-on: ubuntu-latest steps: - name: Download digests