diff --git a/.github/workflows/test_rust.yml b/.github/workflows/test_rust.yml index 94253a2d96cc..f83438440afd 100644 --- a/.github/workflows/test_rust.yml +++ b/.github/workflows/test_rust.yml @@ -14,7 +14,27 @@ permissions: jobs: # This job should be run on presubmit, if any continuous-only tests are added we will need to input test-type above linux: - name: Linux + strategy: + fail-fast: false # Don't cancel all jobs if one fails. + matrix: + config: + - { name: "No bzlmod", flags: --noenable_bzlmod } + # TODO: b/379846319 - Fix the tests with bzlmod and enable this. + # - { name: "bzlmod", flags: --enable_bzlmod --enable_workspace } + - { name: Optimized, flags: --config=opt } + - { name: ASAN, flags: --config=asan } + + include: + - targets: "//rust/... //src/google/protobuf/compiler/rust/..." + - image: "us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:7.1.1-97f82260fd504923d8af642d567afb2d83a1959d" + - bazel_cmd: "test" + + # Override cases with custom images + - config: { name: Cargo } + image: "us-docker.pkg.dev/protobuf-build/containers/release/linux/rust:6.3.0-1.74.0-8858126dd9480abf91e6ce8d6e41a5cd3c03882c" + bazel_cmd: "run" + targets: "//rust:cargo_test" + name: Linux ${{ matrix.config.name }} runs-on: ubuntu-22-4core steps: - name: Checkout pending changes @@ -24,18 +44,10 @@ jobs: - name: Run tests uses: protocolbuffers/protobuf-ci/bazel-docker@v3 with: - image: "us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:7.1.1-97f82260fd504923d8af642d567afb2d83a1959d" - credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} - bazel-cache: rust_linux - bazel: >- - test --cxxopt=-std=c++17 --host_cxxopt=-std=c++17 --@rules_rust//rust/settings:experimental_use_cc_common_link=True - //rust/... - //src/google/protobuf/compiler/rust/... - - name: Run Cargo tests - uses: protocolbuffers/protobuf-ci/bazel-docker@v3 - with: - image: "us-docker.pkg.dev/protobuf-build/containers/release/linux/rust:6.3.0-1.74.0-8858126dd9480abf91e6ce8d6e41a5cd3c03882c" + image: ${{ matrix.image }} credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} bazel-cache: rust_linux bazel: >- - run --crosstool_top=//toolchain:clang_suite --cxxopt=-std=c++17 --host_cxxopt=-std=c++17 //rust:cargo_test + ${{ matrix.bazel_cmd }} --crosstool_top=//toolchain:clang_suite --cxxopt=-std=c++17 --host_cxxopt=-std=c++17 --@rules_rust//rust/settings:experimental_use_cc_common_link=True + ${{ matrix.targets }} ${{ matrix.config.flags }} +