diff options
author | Philip Kuryloski <kuryloskip@vmware.com> | 2021-11-12 09:15:39 -0800 |
---|---|---|
committer | Philip Kuryloski <kuryloskip@vmware.com> | 2021-11-15 11:34:42 +0100 |
commit | 1688f75641f9eb178997115abf97e4dfaff718a2 (patch) | |
tree | 960930d40f5e36676b07c4675eede8047b23c976 | |
parent | 47bc02b93a151fd76a422828f5d04b41b74a7381 (diff) | |
download | rabbitmq-server-git-1688f75641f9eb178997115abf97e4dfaff718a2.tar.gz |
Use externailzed rbe config in bazelmergify/bp/v3.9.x/pr-3722
(cherry picked from commit df0fa0ce6087bdae7a02aa85a5804c5fbd01a210)
-rw-r--r-- | .bazelrc | 44 | ||||
-rw-r--r-- | .github/workflows/rabbitmq_peer_discovery_aws.yaml | 1 | ||||
-rw-r--r-- | .github/workflows/test-erlang-git.yaml | 56 | ||||
-rw-r--r-- | .github/workflows/update-rbe-images.yaml | 60 | ||||
-rw-r--r-- | BUILD.bazel | 28 | ||||
-rw-r--r-- | WORKSPACE.bazel | 17 | ||||
-rw-r--r-- | user-template.bazelrc | 4 |
7 files changed, 161 insertions, 49 deletions
@@ -14,38 +14,42 @@ build:rbe --config=buildbuddy build:rbe --remote_executor=grpcs://remote.buildbuddy.io -build:rbe --crosstool_top=@buildbuddy_toolchain//:toolchain -build:rbe --extra_toolchains=@buildbuddy_toolchain//:cc_toolchain -build:rbe --javabase=@buildbuddy_toolchain//:javabase_jdk8 -build:rbe --host_javabase=@buildbuddy_toolchain//:javabase_jdk8 -build:rbe --java_toolchain=@buildbuddy_toolchain//:toolchain_jdk8 -build:rbe --host_java_toolchain=@buildbuddy_toolchain//:toolchain_jdk8 +build:rbe --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 +build:rbe --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 +build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 build:rbe --@bazel-erlang//:erlang_home=/usr/lib/erlang build:rbe --//:elixir_home=/usr/local build:rbe --spawn_strategy=remote build:rbe --test_strategy="" -build:rbe --jobs=50 +build:rbe --jobs=100 build:rbe-23 --config=rbe -build:rbe-23 --host_platform=//:erlang_23_platform -build:rbe-23 --platforms=//:erlang_23_platform -build:rbe-23 --extra_execution_platforms=//:erlang_23_platform +build:rbe-23 --host_javabase=@rbe_23//java:jdk +build:rbe-23 --javabase=@rbe_23//java:jdk +build:rbe-23 --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 +build:rbe-23 --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 +build:rbe-23 --crosstool_top=@rbe_23//cc:toolchain +build:rbe-23 --extra_toolchains=@rbe_23//config:cc-toolchain + +build:rbe-23 --host_platform=@rbe_23//config:platform +build:rbe-23 --platforms=@rbe_23//config:platform +build:rbe-23 --extra_execution_platforms=@rbe_23//config:platform + build:rbe-23 --@bazel-erlang//:erlang_version=23 build:rbe-24 --config=rbe -build:rbe-24 --host_platform=//:erlang_24_platform -build:rbe-24 --platforms=//:erlang_24_platform -build:rbe-24 --extra_execution_platforms=//:erlang_24_platform -build:rbe-24 --@bazel-erlang//:erlang_version=24 +build:rbe-24 --host_javabase=@rbe_24//java:jdk +build:rbe-24 --javabase=@rbe_24//java:jdk +build:rbe-24 --crosstool_top=@rbe_24//cc:toolchain +build:rbe-24 --extra_toolchains=@rbe_24//config:cc-toolchain -build:rbe-git --config=rbe -build:rbe-git --host_platform=//:erlang_git_platform -build:rbe-git --platforms=//:erlang_git_platform -build:rbe-git --extra_execution_platforms=//:erlang_git_platform -build:rbe-git --@bazel-erlang//:erlang_home=/usr/local/lib/erlang -build:rbe-git --@bazel-erlang//:erlang_version=25 +build:rbe-24 --host_platform=@rbe_24//config:platform +build:rbe-24 --platforms=@rbe_24//config:platform +build:rbe-24 --extra_execution_platforms=@rbe_24//config:platform + +build:rbe-24 --@bazel-erlang//:erlang_version=24 # Try importing a user specific .bazelrc # You can create your own by copying and editing the template-user.bazelrc template: diff --git a/.github/workflows/rabbitmq_peer_discovery_aws.yaml b/.github/workflows/rabbitmq_peer_discovery_aws.yaml index 2c34701962..9ce9092ce7 100644 --- a/.github/workflows/rabbitmq_peer_discovery_aws.yaml +++ b/.github/workflows/rabbitmq_peer_discovery_aws.yaml @@ -15,6 +15,7 @@ jobs: include: - image_tag_suffix: otp-max erlang_version: "24" + rbe_default_branch: linux-erlang-24.1 timeout-minutes: 45 steps: - name: CHECKOUT REPOSITORY diff --git a/.github/workflows/test-erlang-git.yaml b/.github/workflows/test-erlang-git.yaml new file mode 100644 index 0000000000..2b05348b84 --- /dev/null +++ b/.github/workflows/test-erlang-git.yaml @@ -0,0 +1,56 @@ +name: Test Erlang Git Master +on: + schedule: + - cron: '0 2 * * *' + workflow_dispatch: +jobs: + test-erlang-git: + name: Test (Erlang Git Master) + runs-on: ubuntu-18.04 + timeout-minutes: 120 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2.4.0 + - name: UPDATE RBE IMAGE SHA + env: + IMAGE: pivotalrabbitmq/rabbitmq-server-buildenv + TAG: linux-erlang-git-master + run: | + # buildbuddy caches the container image, so we must use a specific sha to ensure + # the latest is used + DIGEST="$(skopeo inspect --format '{{.Digest}}' docker://${IMAGE}:${TAG})" + echo "Will use ${IMAGE}@${DIGEST}" + sudo npm install --global --silent @bazel/buildozer + npx buildozer \ + "dict_set exec_properties container-image:docker://${IMAGE}@${DIGEST}" \ + //:erlang_git_platform + - name: CONFIGURE BAZEL + run: | + cat << EOF >> user.bazelrc + build:buildbuddy --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }} + + build:buildbuddy --build_metadata=ROLE=CI + build:buildbuddy --build_metadata=VISIBILITY=PUBLIC + build:buildbuddy --remote_instance_name=buildbuddy-io/buildbuddy/ci-erlang-git + + build:rbe-git --crosstool_top=@buildbuddy_toolchain//:toolchain + build:rbe-git --extra_toolchains=@buildbuddy_toolchain//:cc_toolchain + build:rbe-git --javabase=@buildbuddy_toolchain//:javabase_jdk8 + build:rbe-git --host_javabase=@buildbuddy_toolchain//:javabase_jdk8 + build:rbe-git --java_toolchain=@buildbuddy_toolchain//:toolchain_jdk8 + build:rbe-git --host_java_toolchain=@buildbuddy_toolchain//:toolchain_jdk8 + + build:rbe-git --host_platform=//:erlang_git_platform + build:rbe-git --platforms=//:erlang_git_platform + build:rbe-git --extra_execution_platforms=//:erlang_git_platform + build:rbe-git --@bazel-erlang//:erlang_home=/usr/local/lib/erlang + build:rbe-git --@bazel-erlang//:erlang_version=25 + EOF + #! - name: Setup tmate session + #! uses: mxschmitt/action-tmate@v3 + - name: RUN TESTS + run: | + bazelisk test //... \ + --config=rbe-git \ + --test_tag_filters=-mixed-version-cluster,-exclusive,-aws \ + --verbose_failures diff --git a/.github/workflows/update-rbe-images.yaml b/.github/workflows/update-rbe-images.yaml new file mode 100644 index 0000000000..c2174fedbd --- /dev/null +++ b/.github/workflows/update-rbe-images.yaml @@ -0,0 +1,60 @@ +name: Update Bazel RBE Images +on: + schedule: + - cron: '0 3 * * *' + workflow_dispatch: +jobs: + update-rbe-images: + name: Update Bazel RBE Images + runs-on: ubuntu-latest + strategy: + max-parallel: 1 + matrix: + erlang_version: + - "23.3" + - "24.1" + include: + - erlang_version: "23.3" + short_version: "23" + - erlang_version: "24.1" + short_version: "24" + timeout-minutes: 10 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2.4.0 + with: + path: rabbitmq-server + - name: CHECKOUT rbe-erlang-platform REPOSITORY + uses: actions/checkout@v2.4.0 + with: + path: rbe-erlang-platform + repository: rabbitmq/rbe-erlang-platform + branch: linux-erlang-${{ matrix.erlang_version }} + - name: DETERMINE LATEST COMMIT + id: find-commit + working-directory: rbe-erlang-platform + run: | + echo "::set-output name=SHA::$(git rev-parse HEAD)" + - name: UPDATE rbe-erlang-platform COMMIT + working-directory: rabbitmq-server + run: | + sudo npm install --global --silent @bazel/buildozer + echo "$(cat WORKSPACE.bazel | npx buildozer 'set commit "${{ steps.find-commit.outputs.SHA }}"' -:rbe_${{ matrix.short_version }})" > WORKSPACE.bazel + git diff + - name: CREATE PULL REQUEST + uses: peter-evans/create-pull-request@v3 + with: + token: ${{ secrets.REPO_SCOPED_TOKEN }} + committer: GitHub <noreply@github.com> + author: GitHub <noreply@github.com> + title: Adopt latest rabbitmq-server-buildenv:linux-erlang-${{ matrix.erlang_version }} for RBE + path: rabbitmq-server + commit-message: | + Use latest rbe-erlang-platform/linux-erlang-${{ matrix.erlang_version }} + + for remote build execution (RBE) with BuildBuddy + labels: | + backport-v3.9.x + backport-v3.8.x + branch: bump-rbe-${{ matrix.short_version }} + delete-branch: true diff --git a/BUILD.bazel b/BUILD.bazel index 8855917f0c..c6186bccb8 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -18,34 +18,6 @@ elixir_home( ) platform( - name = "erlang_23_platform", - constraint_values = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", - "@bazel_tools//tools/cpp:clang", - ], - exec_properties = { - "OSFamily": "Linux", - # linux-erlang-23.3 - "container-image": "docker://pivotalrabbitmq/rabbitmq-server-buildenv@sha256:5de95518e8d5f3724839ad46e450b80d89cb0e7e546872a63b7ce4fd482a696e", - }, -) - -platform( - name = "erlang_24_platform", - constraint_values = [ - "@platforms//os:linux", - "@platforms//cpu:x86_64", - "@bazel_tools//tools/cpp:clang", - ], - exec_properties = { - "OSFamily": "Linux", - # linux-erlang-24.0 - "container-image": "docker://pivotalrabbitmq/rabbitmq-server-buildenv@sha256:6d9871a3002bd61a09918f789cd5d9fc744a1d01182f010a7eeba66bce9689d2", - }, -) - -platform( name = "erlang_git_platform", constraint_values = [ "@platforms//os:linux", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index ac89ceffad..cd9e4a2bec 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -14,7 +14,22 @@ buildbuddy_deps() load("@io_buildbuddy_buildbuddy_toolchain//:rules.bzl", "buildbuddy") -buildbuddy(name = "buildbuddy_toolchain") +buildbuddy( + name = "buildbuddy_toolchain", + llvm = True, +) + +git_repository( + name = "rbe_23", + commit = "13b3045476b02aaaa2c91030fdaff91e7ab9bced", + remote = "https://github.com/rabbitmq/rbe-erlang-platform.git", +) + +git_repository( + name = "rbe_24", + commit = "41a52ed360537f6794f6e759dd7eec7bbf65445c", + remote = "https://github.com/rabbitmq/rbe-erlang-platform.git", +) http_archive( name = "rules_pkg", diff --git a/user-template.bazelrc b/user-template.bazelrc index 15c514c2a2..f92ee3238a 100644 --- a/user-template.bazelrc +++ b/user-template.bazelrc @@ -11,3 +11,7 @@ build --spawn_strategy=local build --flaky_test_attempts=1 build:buildbuddy --remote_header=x-buildbuddy-api-key=YOUR_API_KEY + +# cross compile for linux (if on macOS) with rbe +build:rbe --host_cpu=k8 +build:rbe --cpu=k8 |