third_party_rust_syn/.github/workflows/ci.yml
2021-09-30 02:43:35 -04:00

121 lines
4.1 KiB
YAML

name: CI
on:
push:
pull_request:
schedule: [cron: "40 1 * * *"]
jobs:
test:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@nightly
with:
components: rustc-dev
- run: cargo test --all-features --release --tests
build:
name: ${{matrix.name || format('Rust {0}', matrix.rust)}}
runs-on: ${{matrix.os || 'ubuntu'}}-latest
strategy:
fail-fast: false
matrix:
rust: [stable, beta, 1.31.0]
include:
- rust: nightly
components: rustc-dev
- rust: nightly
name: WebAssembly
target: wasm32-unknown-unknown
- rust: nightly
name: WASI
target: wasm32-wasi
- rust: nightly
name: Windows
os: windows
env:
target: ${{matrix.target && format('--target={0}', matrix.target)}}
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.rust}}
components: ${{matrix.components}}
- if: matrix.target
run: rustup target add ${{matrix.target}}
- run: cargo check ${{env.target}} --no-default-features
- run: cargo check ${{env.target}}
- run: cargo check ${{env.target}} --features full
- run: cargo check ${{env.target}} --features 'fold visit visit-mut'
- run: cargo check ${{env.target}} --features 'full fold visit visit-mut'
- run: cargo check ${{env.target}} --no-default-features --features derive
- run: cargo check ${{env.target}} --no-default-features --features 'derive parsing'
- run: cargo check ${{env.target}} --no-default-features --features 'derive printing'
- run: cargo check ${{env.target}} --no-default-features --features 'proc-macro parsing printing'
- run: cargo check ${{env.target}} --no-default-features --features full
- run: cargo check ${{env.target}} --no-default-features --features 'full parsing'
- run: cargo check ${{env.target}} --no-default-features --features 'full printing'
- run: cargo check ${{env.target}} --no-default-features --features 'full parsing printing'
- run: cargo check ${{env.target}} --no-default-features --features 'fold visit visit-mut parsing printing'
- run: cargo check ${{env.target}} --no-default-features --features 'full fold visit visit-mut parsing printing'
- if: matrix.components == 'rustc-dev'
run: cargo check --benches --all-features --release
examples:
name: Examples
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@nightly
- run: cargo check --manifest-path examples/dump-syntax/Cargo.toml
- run: cargo check --manifest-path examples/heapsize/example/Cargo.toml
- run: cargo check --manifest-path examples/lazy-static/example/Cargo.toml
- run: cargo check --manifest-path examples/trace-var/example/Cargo.toml
docs:
name: Docs
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: --cfg=doc_cfg -Dbroken_intra_doc_links
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@nightly
- run: cargo test --all-features --doc
- run: cargo doc --all-features
codegen:
name: Codegen
runs-on: ubuntu-latest
env:
CFG_RELEASE_CHANNEL: dev
CFG_RELEASE: dev
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2021-04-26
- run: cd codegen && cargo run
- run: git diff --exit-code
msrv:
name: Minimal versions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@nightly
- run: cargo update -Z minimal-versions
- run: cargo check --all-features
clippy:
name: Clippy
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v2
- uses: dtolnay/rust-toolchain@nightly
with:
components: clippy,rustc-dev
- run: cargo clippy --all-features --tests -- -Dclippy::all -Dclippy::pedantic