diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index dcde2bbea..5aeb6aca9 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -529,14 +529,25 @@ jobs: org.opencontainers.image.otp.version=${{ matrix.otp }} org.opencontainers.image.elixir.version=${{ matrix.elixir }} - uses: docker/login-action@v1 - if: github.event_name == 'release' + if: > + ${{ (github.event_name == 'release' && !github.event.release.prerelease) + || (github.event.repository.owner != 'emqx' && startsWith(github.ref_name, 'ci/')) }} with: username: ${{ secrets.DOCKER_HUB_USER }} password: ${{ secrets.DOCKER_HUB_TOKEN }} + + - name: export os image from matrix.os + id: os-img + run: | + img=$(echo ${{ matrix.os }} | sed 's#\([0-9.]\+\)$#:\1#g') + echo "::set-output name=img::${img}" + - uses: docker/build-push-action@v2 if: ${{ matrix.build_elixir == 'no_elixir' }} with: - push: ${{ github.event_name == 'release' && !github.event.release.prerelease }} + push: > + ${{ (github.event_name == 'release' && !github.event.release.prerelease) + || (github.event.repository.owner != 'emqx' && startsWith(github.ref_name, 'ci/')) }} pull: true no-cache: true platforms: linux/${{ matrix.arch }} @@ -544,7 +555,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} build-args: | BUILD_FROM=ghcr.io/emqx/emqx-builder/5.0-5:${{ matrix.elixir }}-${{ matrix.otp }}-${{ matrix.os }} - RUN_FROM=alpine:3.14 + RUN_FROM=${{ steps.os-img.outputs.img }} EMQX_NAME=${{ matrix.profile }} file: source/deploy/docker/Dockerfile context: source @@ -589,8 +600,12 @@ jobs: docker-push-multi-arch-manifest: # note, we only run on amd64 - if: github.event_name == 'release' - needs: docker + if: > + (github.event_name == 'release' && !github.event.release.prerelease) + || (github.event.repository.owner != 'emqx' && startsWith(github.ref_name, 'ci/')) + needs: + - prepare + - docker runs-on: ubuntu-latest strategy: fail-fast: false @@ -650,10 +665,10 @@ jobs: - name: update manifest for multiarch image if: matrix.arch == 'amd64' + working-directory: source run: | IsPushLatest=${{ github.event_name == 'release' && !github.event.release.prerelease }}; - scripts/docker-create-push-manifest "${{ steps.meta.outputs.tags }}" "$IsPushLatest" - + scripts/docker-create-push-manifests.sh "${{ steps.meta.outputs.tags }}" "$IsPushLatest" delete-artifact: runs-on: ubuntu-20.04