diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index 511c0e3c3..20067af4c 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -494,6 +494,11 @@ jobs: source/deps/quicer/ key: ${{ matrix.os }}-${{ matrix.otp }}-${{ matrix.arch }}-${{ needs.prepare.outputs.DEP_QUICER_REF }} + - uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + - name: prepare for docker-action-parms id: pre-meta run: | @@ -527,13 +532,6 @@ jobs: type=semver,pattern={{version}} labels: ${{ steps.pre-meta.outputs.img_labels }} - - uses: docker/login-action@v1 - 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 }} - uses: docker/build-push-action@v2 with: @@ -551,28 +549,24 @@ jobs: EMQX_NAME=${{ steps.pre-meta.outputs.emqx_name }} file: source/deploy/docker/Dockerfile context: source + - uses: aws-actions/configure-aws-credentials@v1 - if: github.event_name == 'release' && !github.event.release.prerelease && matrix.profile == 'emqx' + if: matrix.profile == 'emqx' with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - name: Push image to aws ecr - if: github.event_name == 'release' && !github.event.release.prerelease && matrix.profile == 'emqx' && matrix.build_elixir == 'no_elixir' + - name: Docker push to aws ecr + if: > + ${{ (github.event_name == 'release' && !github.event.release.prerelease && matrix.profile == 'emqx') + || (github.event.repository.owner != 'emqx' && startsWith(github.ref_name, 'ci/')) }} run: | - version=${GITHUB_REF##*/} - docker pull emqx/emqx:${version#v} - docker tag emqx/emqx:${version#v} public.ecr.aws/emqx/emqx:${version#v} aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws - docker push public.ecr.aws/emqx/emqx:${version#v} - - name: Push image to aws ecr (elixir) - if: github.event_name == 'release' && !github.event.release.prerelease && matrix.profile == 'emqx' && matrix.build_elixir == 'with_elixir' - run: | - version=${GITHUB_REF##*/}-elixir - docker pull emqx/emqx:${version#v} - docker tag emqx/emqx:${version#v} public.ecr.aws/emqx/emqx:${version#v} - aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws - docker push public.ecr.aws/emqx/emqx:${version#v} + for tag in $(echo ${{ steps.meta.outputs.json }} | jq -c '.tags[]'); do + docker pull "$tag" + docker tag "$tag" "public.ecr.aws/$tag" + docker push "public.ecr.aws/$tag" + done docker-push-multi-arch-manifest: # note, we only run on amd64 @@ -677,6 +671,19 @@ jobs: IsPushLatest=${{ github.event_name == 'release' && !github.event.release.prerelease }}; scripts/docker-create-push-manifests.sh "${{ steps.meta.outputs.tags }}" "$IsPushLatest" + - uses: aws-actions/configure-aws-credentials@v1 + if: matrix.profile == 'emqx' && matrix.arch == 'amd64' + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + - name: Docker push to aws ecr + if: matrix.profile == 'emqx' && matrix.arch == 'amd64' + run: | + aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws + IsPushLatest=${{ github.event_name == 'release' && !github.event.release.prerelease }}; + scripts/docker-create-push-manifests.sh "public.ecr.aws/${{ steps.meta.outputs.tags }}" "$IsPushLatest" + delete-artifact: runs-on: ubuntu-20.04 needs: [prepare, mac, linux, docker]