mirror of
https://gitee.com/openharmony/third_party_rust_memoffset
synced 2024-12-03 13:00:42 +00:00
923a5f2386
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
95 lines
2.6 KiB
YAML
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
|