From 42fc8041004bdcf5d27d6b83d85c960d7f3453af Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Sun, 5 May 2024 04:33:41 -0400 Subject: [PATCH] Restore OCI builds in Actions --- .github/workflows/oci.yaml | 222 ++++++++++++++++++------------------- 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/.github/workflows/oci.yaml b/.github/workflows/oci.yaml index 4b4da87acc43..9a0e160fe4be 100644 --- a/.github/workflows/oci.yaml +++ b/.github/workflows/oci.yaml @@ -1,111 +1,111 @@ -# # https://github.com/marketplace/actions/build-and-push-docker-images -# name: OCI -# on: -# push: -# paths-ignore: -# - '.github/workflows/secondary-umbrella.yaml' -# - '.github/workflows/update-elixir-patches.yaml' -# - '.github/workflows/update-otp-patches.yaml' -# workflow_dispatch: -# env: -# VERSION: ${{ github.event.pull_request.head.sha || github.sha }} -# concurrency: -# group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} -# cancel-in-progress: true -# jobs: -# build-publish-dev-bazel: -# runs-on: ubuntu-latest -# steps: -# - name: Checkout -# uses: actions/checkout@v3 - -# - name: Set up QEMU -# uses: docker/setup-qemu-action@v3 - -# - name: Set up Docker Buildx -# uses: docker/setup-buildx-action@v3 - -# - name: Configure Erlang -# uses: erlef/setup-beam@v1 -# with: -# otp-version: 26.2 -# elixir-version: 1.15 - -# - name: Expose GitHub Runtime -# uses: crazy-max/ghaction-github-runtime@v3 - -# - name: Configure Bazel -# run: | -# if [ -n "${{ secrets.BUILDBUDDY_API_KEY }}" ]; then -# cat << EOF >> user.bazelrc -# build:buildbuddy --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }} -# EOF -# fi -# cat << EOF >> user.bazelrc -# build:buildbuddy --build_metadata=ROLE=CI -# build:buildbuddy --build_metadata=VISIBILITY=PRIVATE -# build:buildbuddy --color=yes - -# build --experimental_ui_max_stdouterr_bytes=4194304 -# build --action_env EXTRA_BUILDX_OPTS="--cache-from=type=gha --cache-to=type=gha" -# EOF - -# # - name: Build amd64 -# # run: | -# # bazelisk build //packaging/docker-image:rabbitmq-amd64 \ -# # --config=buildbuddy - -# # - name: Build arm64 -# # run: | -# # bazelisk build //packaging/docker-image:rabbitmq-arm64 \ -# # --config=buildbuddy - -# # - name: Test -# # run: | -# # OCI_TESTS=$(bazel cquery 'tests(//packaging/docker-image/...)' | awk '{ print $1 }') -# # bazelisk test ${OCI_TESTS} \ -# # --config=buildbuddy - -# - name: Check for Push Credentials -# id: authorized -# run: | -# if [ -n "${{ secrets.DOCKERHUB_USERNAME }}" ]; then -# echo "PUSH=true" >> $GITHUB_OUTPUT -# else -# echo "PUSH=false" >> $GITHUB_OUTPUT -# fi - -# - name: Assemble Multi-Arch -# run: | -# bazelisk build //packaging/docker-image:rabbitmq \ -# --config=buildbuddy - -# - name: Login to DockerHub -# if: steps.authorized.outputs.PUSH == 'true' -# uses: docker/login-action@v1 -# with: -# username: ${{ secrets.DOCKERHUB_USERNAME }} -# password: ${{ secrets.DOCKERHUB_PASSWORD }} - -# - name: Tag and Push -# if: steps.authorized.outputs.PUSH == 'true' -# run: | -# TAG_1="${{ env.VERSION }}" - -# REF_NAME="${{ github.ref_name }}" -# TAG_2="${REF_NAME//\//-}" - -# set -x -# bazelisk run //packaging/docker-image:push \ -# --config=buildbuddy -- \ -# --tag ${TAG_1} \ -# --tag ${TAG_2} - -# summary-oci: -# needs: -# - build-publish-dev-bazel -# runs-on: ubuntu-latest -# steps: -# - name: SUMMARY -# run: | -# echo "SUCCESS" +# https://github.com/marketplace/actions/build-and-push-docker-images +name: OCI +on: + push: + paths-ignore: + - '.github/workflows/secondary-umbrella.yaml' + - '.github/workflows/update-elixir-patches.yaml' + - '.github/workflows/update-otp-patches.yaml' + workflow_dispatch: +env: + VERSION: ${{ github.event.pull_request.head.sha || github.sha }} +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true +jobs: + build-publish-dev-bazel: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Configure Erlang + uses: erlef/setup-beam@v1 + with: + otp-version: 26.2 + elixir-version: 1.15 + + - name: Expose GitHub Runtime + uses: crazy-max/ghaction-github-runtime@v3 + + - name: Configure Bazel + run: | + if [ -n "${{ secrets.BUILDBUDDY_API_KEY }}" ]; then + cat << EOF >> user.bazelrc + build:buildbuddy --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }} + EOF + fi + cat << EOF >> user.bazelrc + build:buildbuddy --build_metadata=ROLE=CI + build:buildbuddy --build_metadata=VISIBILITY=PRIVATE + build:buildbuddy --color=yes + + build --experimental_ui_max_stdouterr_bytes=4194304 + build --action_env EXTRA_BUILDX_OPTS="--cache-from=type=gha --cache-to=type=gha" + EOF + + - name: Build amd64 + run: | + bazelisk build //packaging/docker-image:rabbitmq-amd64 \ + --config=buildbuddy + + - name: Build arm64 + run: | + bazelisk build //packaging/docker-image:rabbitmq-arm64 \ + --config=buildbuddy + + - name: Test + run: | + OCI_TESTS=$(bazel cquery 'tests(//packaging/docker-image/...)' | awk '{ print $1 }') + bazelisk test ${OCI_TESTS} \ + --config=buildbuddy + + - name: Check for Push Credentials + id: authorized + run: | + if [ -n "${{ secrets.DOCKERHUB_USERNAME }}" ]; then + echo "PUSH=true" >> $GITHUB_OUTPUT + else + echo "PUSH=false" >> $GITHUB_OUTPUT + fi + + - name: Assemble Multi-Arch + run: | + bazelisk build //packaging/docker-image:rabbitmq \ + --config=buildbuddy + + - name: Login to DockerHub + if: steps.authorized.outputs.PUSH == 'true' + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Tag and Push + if: steps.authorized.outputs.PUSH == 'true' + run: | + TAG_1="${{ env.VERSION }}" + + REF_NAME="${{ github.ref_name }}" + TAG_2="${REF_NAME//\//-}" + + set -x + bazelisk run //packaging/docker-image:push \ + --config=buildbuddy -- \ + --tag ${TAG_1} \ + --tag ${TAG_2} + + summary-oci: + needs: + - build-publish-dev-bazel + runs-on: ubuntu-latest + steps: + - name: SUMMARY + run: | + echo "SUCCESS"