From 85336e232eef79a31ccd63e62590808cfb25b66d Mon Sep 17 00:00:00 2001 From: Ivan Zatevakhin Date: Thu, 13 Aug 2026 02:51:29 +0100 Subject: [PATCH] ci: split ordinary CPU checks --- .github/workflows/ci.yml | 153 ++++++++++++++++++++++++++++++++++++++ .github/workflows/sys.yml | 41 ---------- 2 files changed, 153 insertions(+), 41 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/sys.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1beaffb --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,153 @@ +name: ci + +on: + pull_request: + push: + branches: [main] + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +env: + CMAKE_BUILD_PARALLEL_LEVEL: "2" + CMAKE_GENERATOR: Ninja + +jobs: + fmt: + runs-on: ubuntu-24.04 + timeout-minutes: 10 + steps: + - name: Check out sources + uses: actions/checkout@v4.4.0 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt + - name: Install Just + uses: extractions/setup-just@v3.1.0 + with: + just-version: "1.40.0" + - name: Check formatting + run: just fmt-check + + clippy: + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - name: Check out sources + uses: actions/checkout@v4.4.0 + with: + submodules: recursive + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: clippy + - name: Cache Cargo state + uses: Swatinem/rust-cache@v2.9.2 + with: + save-if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install --yes --no-install-recommends build-essential cmake ninja-build + - name: Install Just + uses: extractions/setup-just@v3.1.0 + with: + just-version: "1.40.0" + - name: Lint + run: just lint + + docs: + needs: [fmt, clippy] + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - name: Check out sources + uses: actions/checkout@v4.4.0 + with: + submodules: recursive + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Cache Cargo state + uses: Swatinem/rust-cache@v2.9.2 + with: + save-if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install --yes --no-install-recommends build-essential cmake ninja-build + - name: Install Just + uses: extractions/setup-just@v3.1.0 + with: + just-version: "1.40.0" + - name: Build documentation + run: just docs + + test: + needs: [fmt, clippy] + runs-on: ubuntu-24.04 + timeout-minutes: 20 + steps: + - name: Check out sources + uses: actions/checkout@v4.4.0 + with: + submodules: recursive + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Cache Cargo state + uses: Swatinem/rust-cache@v2.9.2 + with: + save-if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install --yes --no-install-recommends build-essential cmake ninja-build + - name: Test model-free workspace targets + run: env -u VLLM_CPP_TEST_MODEL cargo test --locked --workspace --all-targets --features vllm-cpp/serde + + native: + needs: [docs, test] + runs-on: ubuntu-24.04 + timeout-minutes: 60 + steps: + - name: Check out sources + uses: actions/checkout@v4.4.0 + with: + submodules: recursive + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Cache Cargo state + uses: Swatinem/rust-cache@v2.9.2 + with: + save-if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install --yes --no-install-recommends binutils build-essential clang cmake ninja-build + - name: Install Just + uses: extractions/setup-just@v3.1.0 + with: + just-version: "1.40.0" + - name: Install bindgen + run: cargo install bindgen-cli --version 0.72.1 --locked + - name: Check generated bindings and FFI conformance + run: just sys + - name: Test Linux CPU link modes + run: just link-modes + + package: + needs: native + runs-on: ubuntu-24.04 + timeout-minutes: 45 + steps: + - name: Check out sources + uses: actions/checkout@v4.4.0 + with: + submodules: recursive + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Cache Cargo state + uses: Swatinem/rust-cache@v2.9.2 + with: + save-if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} + - name: Install native dependencies + run: sudo apt-get update && sudo apt-get install --yes --no-install-recommends build-essential cmake ninja-build + - name: Dry-run workspace publish + run: cargo publish --workspace --locked --dry-run diff --git a/.github/workflows/sys.yml b/.github/workflows/sys.yml deleted file mode 100644 index ae6f7b6..0000000 --- a/.github/workflows/sys.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: sys - -on: - push: - branches: [main] - pull_request: - -permissions: - contents: read - -env: - CMAKE_BUILD_PARALLEL_LEVEL: "2" - CMAKE_GENERATOR: Ninja - -jobs: - conformance: - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - uses: dtolnay/rust-toolchain@stable - with: - components: clippy,rustfmt - - uses: Swatinem/rust-cache@v2 - - name: install native tools - run: sudo apt-get update && sudo apt-get install --yes binutils build-essential clang cmake jq ninja-build - - name: install pinned maintainer tools - run: | - cargo install bindgen-cli --version 0.72.1 --locked - cargo install just --version 1.40.0 --locked - - name: check formatting - run: just fmt-check - - name: lint - run: just lint - - name: check generated bindings and ffi conformance - run: just sys - - name: test Linux CPU link modes - run: just link-modes - - name: test packaged sys crate and downstream fixture - run: just package-test