mirror of
https://github.com/protocolbuffers/protobuf
synced 2026-08-26 02:23:14 -04:00
79 lines
2.8 KiB
YAML
79 lines
2.8 KiB
YAML
name: Rust Tests
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
safe-checkout:
|
|
required: true
|
|
description: "The SHA key for the commit we want to run over"
|
|
type: string
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
# This job should be run on presubmit, if any continuous-only tests are added we will need to input test-type above
|
|
linux:
|
|
strategy:
|
|
fail-fast: false # Don't cancel all jobs if one fails.
|
|
matrix:
|
|
config:
|
|
- { name: "Bzlmod and Workspace", 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:9.2.0-4d8e80ef93b0219fb907af9dd4596b92946995d8"
|
|
- bazel_cmd: "test"
|
|
|
|
# Override cases with custom images
|
|
- config: { name: Cargo }
|
|
# We need Rust 1.90 so that we can use the new workspace publishing
|
|
# feature.
|
|
image: "us-docker.pkg.dev/protobuf-build/containers/release/linux/rust:9.0.0-1.90.0-98863a45066747115144a8a8fb4818189d1e0761"
|
|
bazel_cmd: "run"
|
|
targets: "//rust/release_crates:cargo_test"
|
|
|
|
name: Linux ${{ matrix.config.name }}
|
|
runs-on: ubuntu-22-4core
|
|
steps:
|
|
- name: Checkout pending changes
|
|
uses: protocolbuffers/protobuf-ci/checkout@v6
|
|
with:
|
|
ref: ${{ inputs.safe-checkout }}
|
|
- name: Run tests
|
|
uses: protocolbuffers/protobuf-ci/bazel-docker@v6
|
|
with:
|
|
image: ${{ matrix.image }}
|
|
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }}
|
|
bazel-cache: rust_linux
|
|
bazel: >-
|
|
${{ matrix.bazel_cmd }} --crosstool_top=//toolchain:clang_suite --@rules_rust//rust/settings:experimental_use_cc_common_link=True
|
|
${{ matrix.targets }} ${{ matrix.config.flags }}
|
|
|
|
windows:
|
|
strategy:
|
|
fail-fast: false # Don't cancel all jobs if one fails.
|
|
name: Windows Cargo
|
|
runs-on: windows-2022
|
|
steps:
|
|
- name: Checkout pending changes
|
|
uses: protocolbuffers/protobuf-ci/checkout@v6
|
|
with:
|
|
ref: ${{ inputs.safe-checkout }}
|
|
- name: Windows startup flags
|
|
shell: bash
|
|
run: echo "startup --output_user_root=C:/ --windows_enable_symlinks" >> .bazelrc
|
|
- name: Install Rust
|
|
shell: bash
|
|
# We need Rust 1.90 so that we can use the new workspace publishing
|
|
# feature.
|
|
run: rustup default 1.90
|
|
- name: Run tests
|
|
uses: protocolbuffers/protobuf-ci/bazel@v6
|
|
with:
|
|
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }}
|
|
bazel: run //rust/release_crates:cargo_test
|
|
bazel-cache: windows-cargo
|
|
version: 9.2.0
|