ci: push docker image on my own branch

This commit is contained in:
William Yang 2022-01-27 17:34:13 +01:00
parent 177d42cad4
commit 5206824743
1 changed files with 22 additions and 7 deletions

View File

@ -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