mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
Update Cargo.lock to move rand to 0.10.1 so cargo-deny stops failing on RUSTSEC-2026-0097. Also tighten the Python workflow cache boundaries by keying rust-cache to pinned runner images. The workflow now keeps Ubuntu 22.04, Ubuntu 24.04, and Windows 2022 caches separate, which avoids reusing host build artifacts across runner image changes. That is the class of issue behind the intermittent GLIBC mismatch seen in CI.
95 lines
3.0 KiB
YAML
95 lines
3.0 KiB
YAML
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
#
|
|
name: bindings/python
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
schedule:
|
|
# Run at 8:00 AM every day
|
|
- cron: "0 8 * * *"
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
host:
|
|
- name: ubuntu-22.04
|
|
target: x86_64-unknown-linux-gnu
|
|
- name: windows-2022
|
|
target: x86_64-pc-windows-msvc
|
|
runs-on: ${{ matrix.host.name }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: ./.github/actions/toolchains/rust
|
|
with:
|
|
targets: ${{ matrix.host.target }}
|
|
- name: Cache cargo
|
|
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
with:
|
|
shared-key: ${{ runner.os }}-${{ matrix.host.name }}-regorus
|
|
- name: Fetch dependencies
|
|
run: cargo fetch --locked
|
|
|
|
- name: Fetch Python crate dependencies
|
|
run: cargo fetch --locked --manifest-path bindings/python/Cargo.toml --target ${{ matrix.host.target }}
|
|
|
|
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: "3.10"
|
|
architecture: x64
|
|
|
|
- name: Install maturin
|
|
run: python -m pip install maturin==1.5.1
|
|
|
|
- name: Build Python wheel via xtask
|
|
run: cargo xtask build-python --release --target ${{ matrix.host.target }} --target-dir bindings/python/dist --frozen
|
|
|
|
- name: Upload wheel artefacts
|
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
with:
|
|
name: regorus-wheel-${{ matrix.host.name }}
|
|
path: bindings/python/dist/regorus-*.whl
|
|
|
|
test:
|
|
needs: build
|
|
strategy:
|
|
matrix:
|
|
host:
|
|
- name: ubuntu-24.04
|
|
- name: ubuntu-22.04
|
|
- name: windows-2022
|
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
runs-on: ${{ matrix.host.name }}
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: ./.github/actions/toolchains/rust
|
|
- name: Cache cargo
|
|
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
with:
|
|
shared-key: ${{ runner.os }}-${{ matrix.host.name }}-regorus
|
|
- name: Fetch dependencies
|
|
run: cargo fetch --locked
|
|
|
|
- name: Fetch Python crate dependencies
|
|
run: cargo fetch --locked --manifest-path bindings/python/Cargo.toml
|
|
|
|
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
architecture: x64
|
|
|
|
- name: Install maturin
|
|
run: python -m pip install maturin==1.5.1
|
|
|
|
- name: Run Python smoke tests via xtask
|
|
run: cargo xtask test-python --release --python python
|