Also bump MSRV to 1.82 Updating anstyle-wincon v3.0.7 -> v3.0.8 Updating backtrace v0.3.74 -> v0.3.75 Updating bitflags v2.9.0 -> v2.9.1 Updating cc v1.2.21 -> v1.2.24 Updating clap v4.5.37 -> v4.5.38 Updating clap_builder v4.5.37 -> v4.5.38 Updating clap_complete v4.5.48 -> v4.5.50 Updating errno v0.3.11 -> v0.3.12 Updating getrandom v0.3.2 -> v0.3.3 Updating icu_collections v1.5.0 -> v2.0.0 Adding icu_locale_core v2.0.0 Removing icu_locid v1.5.0 Removing icu_locid_transform v1.5.0 Removing icu_locid_transform_data v1.5.1 Updating icu_normalizer v1.5.0 -> v2.0.0 Updating icu_normalizer_data v1.5.1 -> v2.0.0 Updating icu_properties v1.5.1 -> v2.0.1 Updating icu_properties_data v1.5.1 -> v2.0.1 Updating icu_provider v1.5.0 -> v2.0.0 Removing icu_provider_macros v1.5.0 Updating idna_adapter v1.2.0 -> v1.2.1 Updating jiff v0.2.12 -> v0.2.14 Updating jiff-static v0.2.12 -> v0.2.14 Updating kqueue v1.0.8 -> v1.1.1 Updating litemap v0.7.5 -> v0.8.0 Adding once_cell_polyfill v1.70.1 Adding potential_utf v0.1.2 Updating rustversion v1.0.20 -> v1.0.21 Updating tempfile v3.19.1 -> v3.20.0 Updating tinystr v0.7.6 -> v0.8.1 Updating tokio v1.44.2 -> v1.45.0 Removing utf16_iter v1.0.5 Updating web_atoms v0.1.1 -> v0.1.2 Updating windows-core v0.61.0 -> v0.61.2 Updating windows-result v0.3.2 -> v0.3.4 Updating windows-strings v0.4.0 -> v0.4.2 Removing write16 v1.0.0 Updating writeable v0.5.5 -> v0.6.1 Updating yoke v0.7.5 -> v0.8.0 Updating yoke-derive v0.7.5 -> v0.8.0 Adding zerotrie v0.2.2 Updating zerovec v0.10.4 -> v0.11.2 Updating zerovec-derive v0.10.3 -> v0.11.1
132 lines
4 KiB
YAML
132 lines
4 KiB
YAML
name: CI
|
|
on:
|
|
pull_request:
|
|
merge_group:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- name: stable linux
|
|
os: ubuntu-latest
|
|
rust: stable
|
|
target: x86_64-unknown-linux-gnu
|
|
- name: beta linux
|
|
os: ubuntu-latest
|
|
rust: beta
|
|
target: x86_64-unknown-linux-gnu
|
|
- name: nightly linux
|
|
os: ubuntu-latest
|
|
rust: nightly
|
|
target: x86_64-unknown-linux-gnu
|
|
- name: stable x86_64-unknown-linux-musl
|
|
os: ubuntu-22.04
|
|
rust: stable
|
|
target: x86_64-unknown-linux-musl
|
|
- name: stable x86_64 macos
|
|
os: macos-latest
|
|
rust: stable
|
|
target: x86_64-apple-darwin
|
|
- name: stable aarch64 macos
|
|
os: macos-latest
|
|
rust: stable
|
|
target: aarch64-apple-darwin
|
|
- name: stable windows-msvc
|
|
os: windows-latest
|
|
rust: stable
|
|
target: x86_64-pc-windows-msvc
|
|
- name: msrv
|
|
os: ubuntu-22.04
|
|
# sync MSRV with docs: guide/src/guide/installation.md and Cargo.toml
|
|
rust: 1.82.0
|
|
target: x86_64-unknown-linux-gnu
|
|
name: ${{ matrix.name }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
run: bash ci/install-rust.sh ${{ matrix.rust }} ${{ matrix.target }}
|
|
- name: Build and run tests
|
|
run: cargo test --locked --target ${{ matrix.target }}
|
|
- name: Test no default
|
|
run: cargo test --no-default-features --target ${{ matrix.target }}
|
|
|
|
aarch64-cross-builds:
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
run: bash ci/install-rust.sh stable aarch64-unknown-linux-musl
|
|
- name: Build
|
|
run: cargo build --locked --target aarch64-unknown-linux-musl
|
|
|
|
rustfmt:
|
|
name: Rustfmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
run: rustup update stable && rustup default stable && rustup component add rustfmt
|
|
- run: cargo fmt --check
|
|
|
|
gui:
|
|
name: GUI tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
run: bash ci/install-rust.sh stable x86_64-unknown-linux-gnu
|
|
- name: Install npm
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
- name: Install browser-ui-test
|
|
run: npm install
|
|
- name: Run eslint
|
|
run: npm run lint
|
|
- name: Build and run tests (+ GUI)
|
|
run: cargo test --locked --target x86_64-unknown-linux-gnu --test gui
|
|
|
|
# Ensure there are no clippy warnings
|
|
clippy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
run: bash ci/install-rust.sh stable x86_64-unknown-linux-gnu
|
|
- run: rustup component add clippy
|
|
- run: cargo clippy --workspace --all-targets --no-deps -- -D warnings
|
|
|
|
docs:
|
|
name: Check API docs
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install Rust
|
|
run: bash ci/install-rust.sh stable x86_64-unknown-linux-gnu
|
|
- name: Ensure intradoc links are valid
|
|
run: cargo doc --workspace --document-private-items --no-deps
|
|
env:
|
|
RUSTDOCFLAGS: -D warnings
|
|
|
|
# The success job is here to consolidate the total success/failure state of
|
|
# all other jobs. This job is then included in the GitHub branch protection
|
|
# rule which prevents merges unless all other jobs are passing. This makes
|
|
# it easier to manage the list of jobs via this yml file and to prevent
|
|
# accidentally adding new jobs without also updating the branch protections.
|
|
success:
|
|
name: Success gate
|
|
if: always()
|
|
needs:
|
|
- test
|
|
- rustfmt
|
|
- aarch64-cross-builds
|
|
- gui
|
|
- clippy
|
|
- docs
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
|
|
- name: Done
|
|
run: exit 0
|