ci #398
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
schedule: | |
- cron: '00 01 * * *' | |
jobs: | |
test: | |
name: test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# The docs seem to suggest that we can have a matrix with just an | |
# include directive, but it results in a "matrix must define at least | |
# one vector" error in the CI system. | |
build: [pinned, stable, beta, nightly, macos, win-msvc, win-gnu] | |
include: | |
- build: pinned | |
os: ubuntu-latest | |
rust: 1.65.0 | |
- build: stable | |
os: ubuntu-latest | |
rust: stable | |
- build: beta | |
os: ubuntu-latest | |
rust: beta | |
- build: nightly | |
os: ubuntu-latest | |
rust: nightly | |
- build: macos | |
os: macos-latest | |
rust: stable | |
- build: win-msvc | |
os: windows-latest | |
rust: stable | |
- build: win-gnu | |
os: windows-latest | |
rust: stable-x86_64-gnu | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust }} | |
- run: cargo build --verbose | |
- run: cargo doc --verbose | |
- run: cargo test --verbose | |
- run: cargo test --verbose --manifest-path csv-core/Cargo.toml | |
- run: cargo test --verbose --manifest-path csv-index/Cargo.toml | |
- if: matrix.build == 'nightly' | |
run: cargo bench --verbose --no-run | |
check-doc-sync: | |
name: check tutorial and cookbook examples | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
components: rustfmt | |
- name: check that cookbook examples are up to date and in sync | |
run: ci/check-copy cookbook | |
- name: check that tutorial examples are up to date and in sync | |
run: ci/check-copy tutorial | |
rustfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
components: rustfmt | |
- name: Check formatting | |
run: cargo fmt --all --check | |
miri: | |
name: miri | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@miri | |
- run: cargo miri test --lib --verbose | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance | |
- run: cargo miri test --doc --verbose | |
env: | |
MIRIFLAGS: -Zmiri-strict-provenance |