From 15526feb6abcdbdab9266aa5bae7ff7f345f1abc Mon Sep 17 00:00:00 2001 From: yuneng-berri Date: Thu, 30 Jul 2026 17:41:40 +0000 Subject: [PATCH] ci: install stable Rust toolchain before building the package Co-authored-by: Codesmith --- .github/actions/setup-rust-toolchain/action.yml | 17 +++++++++++++++++ .github/workflows/_test-unit-base.yml | 3 +++ .../auto_update_price_and_context_window.yml | 2 ++ .github/workflows/check-ui-api-types.yml | 3 +++ .github/workflows/codspeed.yml | 5 +++++ .github/workflows/mutation-test.yml | 3 +++ .github/workflows/test-code-quality.yml | 3 +++ .github/workflows/test-linting.yml | 6 ++++++ .github/workflows/test-mcp.yml | 3 +++ .github/workflows/test-model-map.yaml | 3 +++ .github/workflows/test-terraform-provider.yml | 3 +++ .github/workflows/test-unit-documentation.yml | 3 +++ .github/workflows/test-unit-proxy-legacy.yml | 3 +++ .github/workflows/weekly_load_anomaly.yml | 3 +++ 14 files changed, 60 insertions(+) create mode 100644 .github/actions/setup-rust-toolchain/action.yml diff --git a/.github/actions/setup-rust-toolchain/action.yml b/.github/actions/setup-rust-toolchain/action.yml new file mode 100644 index 00000000000..436687cc722 --- /dev/null +++ b/.github/actions/setup-rust-toolchain/action.yml @@ -0,0 +1,17 @@ +name: "Set up Rust toolchain" +description: >- + Install the latest stable Rust toolchain and make it the default. Installing + the litellm package builds litellm-rust through maturin, and the crates + pinned in litellm-rust/Cargo.lock require a newer rustc than some runner + images ship by default, which fails the build with "rustc is not + supported by the following packages". Pull stable explicitly instead of + relying on whatever rustc the image happens to default to. + +runs: + using: composite + steps: + - name: Install stable Rust toolchain + shell: bash + run: | + rustup toolchain install stable --profile minimal + rustup default stable diff --git a/.github/workflows/_test-unit-base.yml b/.github/workflows/_test-unit-base.yml index ede69677f56..c5733df1a02 100644 --- a/.github/workflows/_test-unit-base.yml +++ b/.github/workflows/_test-unit-base.yml @@ -62,6 +62,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/auto_update_price_and_context_window.yml b/.github/workflows/auto_update_price_and_context_window.yml index 964c1b84df2..a65c4330368 100644 --- a/.github/workflows/auto_update_price_and_context_window.yml +++ b/.github/workflows/auto_update_price_and_context_window.yml @@ -17,6 +17,8 @@ jobs: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 with: persist-credentials: false + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/check-ui-api-types.yml b/.github/workflows/check-ui-api-types.yml index 9cc8642a137..a59414a0803 100644 --- a/.github/workflows/check-ui-api-types.yml +++ b/.github/workflows/check-ui-api-types.yml @@ -30,6 +30,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/codspeed.yml b/.github/workflows/codspeed.yml index 0fa10cebf9c..0250788a3e2 100644 --- a/.github/workflows/codspeed.yml +++ b/.github/workflows/codspeed.yml @@ -12,6 +12,7 @@ on: - "uv.lock" - ".github/workflows/codspeed.yml" - ".github/actions/setup-uv-with-retries/**" + - ".github/actions/setup-rust-toolchain/**" pull_request: branches: - main @@ -23,6 +24,7 @@ on: - "uv.lock" - ".github/workflows/codspeed.yml" - ".github/actions/setup-uv-with-retries/**" + - ".github/actions/setup-rust-toolchain/**" # Allow CodSpeed to trigger backtest performance analysis # in order to generate initial data workflow_dispatch: @@ -50,6 +52,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/mutation-test.yml b/.github/workflows/mutation-test.yml index 409388b6aa0..b2103ab38e0 100644 --- a/.github/workflows/mutation-test.yml +++ b/.github/workflows/mutation-test.yml @@ -38,6 +38,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-code-quality.yml b/.github/workflows/test-code-quality.yml index 12e216c71c8..e7b45236882 100644 --- a/.github/workflows/test-code-quality.yml +++ b/.github/workflows/test-code-quality.yml @@ -37,6 +37,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-linting.yml b/.github/workflows/test-linting.yml index 3cb6da58ffd..26813ecb691 100644 --- a/.github/workflows/test-linting.yml +++ b/.github/workflows/test-linting.yml @@ -32,6 +32,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: @@ -172,6 +175,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-mcp.yml b/.github/workflows/test-mcp.yml index 1171480c037..a76fa077b27 100644 --- a/.github/workflows/test-mcp.yml +++ b/.github/workflows/test-mcp.yml @@ -31,6 +31,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-model-map.yaml b/.github/workflows/test-model-map.yaml index 9f88ed6bc67..73c51c11ee3 100644 --- a/.github/workflows/test-model-map.yaml +++ b/.github/workflows/test-model-map.yaml @@ -23,6 +23,9 @@ jobs: run: | jq empty model_prices_and_context_window.json + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-terraform-provider.yml b/.github/workflows/test-terraform-provider.yml index 7ec62467a0c..da803a3be91 100644 --- a/.github/workflows/test-terraform-provider.yml +++ b/.github/workflows/test-terraform-provider.yml @@ -73,6 +73,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-unit-documentation.yml b/.github/workflows/test-unit-documentation.yml index 636e077d7a0..6021506b408 100644 --- a/.github/workflows/test-unit-documentation.yml +++ b/.github/workflows/test-unit-documentation.yml @@ -41,6 +41,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/test-unit-proxy-legacy.yml b/.github/workflows/test-unit-proxy-legacy.yml index acfc1698a09..1a113ad96a5 100644 --- a/.github/workflows/test-unit-proxy-legacy.yml +++ b/.github/workflows/test-unit-proxy-legacy.yml @@ -58,6 +58,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: diff --git a/.github/workflows/weekly_load_anomaly.yml b/.github/workflows/weekly_load_anomaly.yml index 67d0a7e7f15..de8c21bb153 100644 --- a/.github/workflows/weekly_load_anomaly.yml +++ b/.github/workflows/weekly_load_anomaly.yml @@ -42,6 +42,9 @@ jobs: with: python-version: "3.12" + - name: Set up Rust toolchain + uses: ./.github/actions/setup-rust-toolchain + - name: Set up uv uses: ./.github/actions/setup-uv-with-retries with: