third_party_rust_memoffset/.github/workflows/ci.yml
Gilad Naaman 923a5f2386 Automatically enable const evaluation
When running on a compiler newer than 1.65,
automatically enable usage of the macro in const contexts.

Closes https://github.com/Gilnaa/memoffset/issues/4
2022-12-11 21:53:36 +02:00

95 lines
2.6 KiB
YAML

name: CI
on: [push, pull_request]
jobs:
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Run cargo test
run: cargo test
test-msrv:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- 1.19.0 # Oldest supported (first version with numeric fields in struct patterns)
- 1.20.0 # Oldest supported with tuple_ty
- 1.31.0 # Oldest supported with allow(clippy)
- 1.36.0 # Oldest supported with MaybeUninit
- 1.40.0 # Oldest supported with cfg(doctest)
- 1.51.0 # Oldest supported with ptr::addr_of!
- 1.65.0 # Oldest supported with stable const evaluation (sans cell)
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
override: true
- name: Run cargo test
# Exclude doctests here, as we don't want to clutter docs themselves
# with backwards compatibility workarounds.
run: cargo test --lib
nightly:
name: Test Suite (nightly features)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Run cargo test
# `--lib` prevents doctests from being run.
# This is due to `unstable_const` requiring extra `feature(...)` directives
# which the doctests do not have.
run: cargo test --all-features --lib
miri:
name: Test Suite (Miri)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Miri
run: |
rustup toolchain install nightly --component miri
rustup override set nightly
cargo miri setup
- name: Test with Miri
run: |
cargo miri test
cargo miri test --all-features
style:
name: lints and formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: 1.51.0 # pin a version for reproducible results
components: rustfmt
override: true
- name: Check warnings
run: RUSTFLAGS="-D warnings" cargo check --all-targets
- name: Check formatting
run: cargo fmt -- --check