diff options
-rw-r--r-- | .bazelrc | 41 | ||||
-rw-r--r-- | .github/workflows/perform-bazel-execution-comparison.yaml | 123 | ||||
-rw-r--r-- | .github/workflows/rabbitmq_peer_discovery_aws.yaml | 10 | ||||
-rw-r--r-- | .github/workflows/test-erlang-git.yaml | 56 | ||||
-rw-r--r-- | .github/workflows/test-mixed-versions.yaml | 18 | ||||
-rw-r--r-- | .github/workflows/test.yaml | 18 | ||||
-rw-r--r-- | BUILD.bazel | 3 | ||||
-rw-r--r-- | WORKSPACE.bazel | 11 |
8 files changed, 249 insertions, 31 deletions
@@ -14,38 +14,25 @@ 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_javabase=@rbe_default//java:jdk +build:rbe --javabase=@rbe_default//java:jdk +build:rbe --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 +build:rbe --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8 +build:rbe --crosstool_top=@rbe_default//cc:toolchain +build:rbe --extra_toolchains=@rbe_default//config:cc-toolchain +build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 + +build:rbe --host_platform=@rbe_default//config:platform +build:rbe --platforms=@rbe_default//config:platform +build:rbe --extra_execution_platforms=@rbe_default//config:platform + +build:rbe --@bazel-erlang//:erlang_version=24 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-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 --@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-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 --jobs=100 # 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/perform-bazel-execution-comparison.yaml b/.github/workflows/perform-bazel-execution-comparison.yaml new file mode 100644 index 0000000000..5f13a616fa --- /dev/null +++ b/.github/workflows/perform-bazel-execution-comparison.yaml @@ -0,0 +1,123 @@ +name: Gather Bazel Execution Logs +on: + workflow_dispatch: + inputs: + target: + description: 'A bazel label representing the test target' + required: true + default: '//deps/rabbit:rabbit_stream_queue_SUITE' +jobs: + run-a: + name: Run A + runs-on: ubuntu-latest + strategy: + matrix: + erlang_version: + - "24" + include: + - erlang_version: "24" + rbe_default_branch: linux-erlang-24.1 + cache_name: ci-bazel-cache-analysis + timeout-minutes: 120 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2.4.0 + - name: SELECT ERLANG VERSION + run: | + sudo npm install --global --silent @bazel/buildozer + echo "$(cat WORKSPACE.bazel | npx buildozer 'set branch "${{ matrix.rbe_default_branch }}"' -:rbe_default)" > WORKSPACE.bazel + git diff + - 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 --remote_instance_name=buildbuddy-io/buildbuddy/ci-${{ matrix.cache_name }} + + build:rbe --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }} + EOF + - name: RUN TESTS + run: | + bazelisk test ${{ github.event.inputs.target }} \ + --config=rbe \ + --execution_log_binary_file=/tmp/exec.log + - name: SAVE EXECUTION LOG BINARY + uses: actions/upload-artifact@v2-preview + with: + name: execution-log-binary-A + path: /tmp/exec.log + run-b: + name: Run B + needs: run-a + runs-on: ubuntu-latest + strategy: + matrix: + erlang_version: + - "24" + include: + - erlang_version: "24" + rbe_default_branch: linux-erlang-24.1 + cache_name: ci-bazel-cache-analysis + timeout-minutes: 120 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2.4.0 + - name: SELECT ERLANG VERSION + run: | + sudo npm install --global --silent @bazel/buildozer + echo "$(cat WORKSPACE.bazel | npx buildozer 'set branch "${{ matrix.rbe_default_branch }}"' -:rbe_default)" > WORKSPACE.bazel + git diff + - 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 --remote_instance_name=buildbuddy-io/buildbuddy/ci-${{ matrix.cache_name }} + + build:rbe --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }} + EOF + - name: RUN TESTS + run: | + bazelisk test ${{ github.event.inputs.target }} \ + --config=rbe \ + --execution_log_binary_file=/tmp/exec.log + - name: SAVE EXECUTION LOG BINARY + uses: actions/upload-artifact@v2-preview + with: + name: execution-log-binary-B + path: /tmp/exec.log + parse-logs: + name: Parse Logs + needs: [run-a, run-b] + runs-on: ubuntu-latest + steps: + - name: CHECKOUT BAZEL + uses: actions/checkout@v2.4.0 + with: + repository: bazelbuild/bazel + path: bazel + - name: MOUNT BAZEL CACHE + uses: actions/cache@v2 + with: + path: "/home/runner/.cache/bazel" + key: bazel + - name: BUILD EXECLOG PARSER + working-directory: bazel + run: | + bazelisk build src/tools/execlog:parser + - name: FETCH LOGS + uses: actions/download-artifact@v2 + - name: PARSE LOGS + run: | + bazel/bazel-bin/src/tools/execlog/parser \ + --log_path=./execution-log-binary-A/exec.log \ + --log_path=./execution-log-binary-B/exec.log \ + --output_path=/tmp/execution-log-binary-A.log.txt \ + --output_path=/tmp/execution-log-binary-B.log.txt + - name: SAVE PARSED LOGS + uses: actions/upload-artifact@v2-preview + with: + name: parsed-logs + path: /tmp/execution-log-binary-*.log.txt diff --git a/.github/workflows/rabbitmq_peer_discovery_aws.yaml b/.github/workflows/rabbitmq_peer_discovery_aws.yaml index 2c34701962..7586fa2896 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 @@ -26,6 +27,11 @@ jobs: check-name: build-publish-dev (${{ matrix.image_tag_suffix }}) repo-token: ${{ secrets.GITHUB_TOKEN }} wait-interval: 30 # seconds + - name: SELECT ERLANG VERSION + run: | + sudo npm install --global --silent @bazel/buildozer + echo "$(cat WORKSPACE.bazel | npx buildozer 'set branch "${{ matrix.rbe_default_branch }}"' -:rbe_default)" > WORKSPACE.bazel + git diff - name: CONFIGURE BAZEL run: | cat << EOF >> user.bazelrc @@ -34,6 +40,8 @@ jobs: build:buildbuddy --build_metadata=ROLE=CI build:buildbuddy --build_metadata=VISIBILITY=PRIVATE build:buildbuddy --remote_instance_name=buildbuddy-io/buildbuddy/ci-aws-${{ matrix.erlang_version }} + + build:rbe --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }} EOF #! - name: Setup tmate session #! uses: mxschmitt/action-tmate@v3 @@ -41,7 +49,7 @@ jobs: run: | branch_or_tag="${GITHUB_REF##*/}" bazelisk test //deps/rabbitmq_peer_discovery_aws:integration_SUITE \ - --config=rbe-${{ matrix.erlang_version }} \ + --config=rbe \ --test_tag_filters=aws \ --build_tests_only \ --test_env AWS_ACCESS_KEY_ID=${{ secrets.CONCOURSE_AWS_ACCESS_KEY_ID }} \ 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/test-mixed-versions.yaml b/.github/workflows/test-mixed-versions.yaml index 91e90db8e9..9d70b38b2b 100644 --- a/.github/workflows/test-mixed-versions.yaml +++ b/.github/workflows/test-mixed-versions.yaml @@ -27,10 +27,24 @@ jobs: erlang_version: - "23" - "24" + include: + - erlang_version: "23" + rbe_default_branch: linux-erlang-23.3 + - erlang_version: "24" + rbe_default_branch: linux-erlang-24.1 timeout-minutes: 120 steps: - name: CHECKOUT REPOSITORY +<<<<<<< HEAD uses: actions/checkout@v2.3.4 +======= + uses: actions/checkout@v2.4.0 + - name: SELECT ERLANG VERSION + run: | + sudo npm install --global --silent @bazel/buildozer + echo "$(cat WORKSPACE.bazel | npx buildozer 'set branch "${{ matrix.rbe_default_branch }}"' -:rbe_default)" > WORKSPACE.bazel + git diff +>>>>>>> 92068f481c (Use externailzed rbe config in bazel) - name: CONFIGURE BAZEL run: | cat << EOF >> user.bazelrc @@ -39,13 +53,15 @@ jobs: build:buildbuddy --build_metadata=ROLE=CI build:buildbuddy --build_metadata=VISIBILITY=PUBLIC build:buildbuddy --remote_instance_name=buildbuddy-io/buildbuddy/ci-${{ matrix.erlang_version }} + + build:rbe --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }} EOF #! - name: Setup tmate session #! uses: mxschmitt/action-tmate@v3 - name: RUN TESTS run: | bazelisk test //... \ - --config=rbe-${{ matrix.erlang_version }} \ + --config=rbe \ --test_tag_filters=mixed-version-cluster,-exclusive,-aws \ --verbose_failures test-exclusive-mixed-versions: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d75635094b..e0decf6305 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -23,10 +23,24 @@ jobs: erlang_version: - "23" - "24" + include: + - erlang_version: "23" + rbe_default_branch: linux-erlang-23.3 + - erlang_version: "24" + rbe_default_branch: linux-erlang-24.1 timeout-minutes: 120 steps: - name: CHECKOUT REPOSITORY +<<<<<<< HEAD uses: actions/checkout@v2.3.4 +======= + uses: actions/checkout@v2.4.0 + - name: SELECT ERLANG VERSION + run: | + sudo npm install --global --silent @bazel/buildozer + echo "$(cat WORKSPACE.bazel | npx buildozer 'set branch "${{ matrix.rbe_default_branch }}"' -:rbe_default)" > WORKSPACE.bazel + git diff +>>>>>>> 92068f481c (Use externailzed rbe config in bazel) - name: CONFIGURE BAZEL run: | cat << EOF >> user.bazelrc @@ -35,13 +49,15 @@ jobs: build:buildbuddy --build_metadata=ROLE=CI build:buildbuddy --build_metadata=VISIBILITY=PUBLIC build:buildbuddy --remote_instance_name=buildbuddy-io/buildbuddy/ci-${{ matrix.erlang_version }} + + build:rbe --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }} EOF #! - name: Setup tmate session #! uses: mxschmitt/action-tmate@v3 - name: RUN TESTS run: | bazelisk test //... \ - --config=rbe-${{ matrix.erlang_version }} \ + --config=rbe \ --test_tag_filters=-exclusive,-aws,-mixed-version-cluster \ --verbose_failures test-exclusive: diff --git a/BUILD.bazel b/BUILD.bazel index 8855917f0c..113019316b 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -18,6 +18,7 @@ elixir_home( ) platform( +<<<<<<< HEAD name = "erlang_23_platform", constraint_values = [ "@platforms//os:linux", @@ -46,6 +47,8 @@ platform( ) platform( +======= +>>>>>>> 92068f481c (Use externailzed rbe config in bazel) name = "erlang_git_platform", constraint_values = [ "@platforms//os:linux", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index ac89ceffad..5c58601a89 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -14,7 +14,16 @@ buildbuddy_deps() load("@io_buildbuddy_buildbuddy_toolchain//:rules.bzl", "buildbuddy") -buildbuddy(name = "buildbuddy_toolchain") +buildbuddy( + name = "buildbuddy_toolchain", + llvm = True, +) + +git_repository( + name = "rbe_default", + branch = "linux-erlang-24.1", + remote = "https://github.com/rabbitmq/rbe-erlang-platform.git", +) http_archive( name = "rules_pkg", |