mirror of
https://github.com/rust-bakery/nom.git
synced 2026-03-26 06:34:10 +00:00
200 lines
4.4 KiB
YAML
200 lines
4.4 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
RUST_MINVERSION: 1.65.0
|
|
CARGO_INCREMENTAL: 0
|
|
CARGO_NET_RETRY: 10
|
|
|
|
jobs:
|
|
test:
|
|
name: Test
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
rust:
|
|
- stable
|
|
- beta
|
|
- nightly
|
|
- 1.65.0
|
|
|
|
features:
|
|
- ''
|
|
|
|
include:
|
|
- rust: stable
|
|
features: ''
|
|
- rust: stable
|
|
features: '--features "std"'
|
|
- rust: stable
|
|
features: '--no-default-features'
|
|
- rust: stable
|
|
features: '--no-default-features --features "alloc"'
|
|
- rust: nightly
|
|
features: ''
|
|
- rust: nightly
|
|
features: '--no-default-features'
|
|
- rust: nightly
|
|
features: '--no-default-features --features "alloc"'
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install rust (${{ matrix.rust }})
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ matrix.rust }}
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --verbose ${{ matrix.features }}
|
|
|
|
- name: Test
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --verbose ${{ matrix.features }}
|
|
|
|
minrust:
|
|
name: Test minimal rust version
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install rust (${{ env.RUST_MINVERSION }})
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: ${{ env.RUST_MINVERSION }}
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Build
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: build
|
|
args: --verbose --no-default-features --features "alloc,std"
|
|
|
|
bench:
|
|
name: Bench
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Compile bench
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: bench
|
|
args: --verbose --no-run --features ""
|
|
|
|
- name: Run bench
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: bench
|
|
args: --verbose --features ""
|
|
|
|
doc:
|
|
name: Build documentation
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: nightly
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Build
|
|
env:
|
|
RUSTDOCFLAGS: -D warnings
|
|
run: cargo doc --no-deps --document-private-items --workspace --verbose --features "std docsrs"
|
|
|
|
fmt:
|
|
name: Check formatting
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
components: rustfmt
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: cargo fmt -- --check
|
|
continue-on-error: true
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: -- --check
|
|
|
|
coverage:
|
|
name: Coverage
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
profile: minimal
|
|
override: true
|
|
|
|
- name: Cache
|
|
uses: Swatinem/rust-cache@v1
|
|
|
|
- name: Install cargo-tarpaulin
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: install
|
|
args: cargo-tarpaulin
|
|
|
|
- name: Run cargo tarpaulin
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: tarpaulin
|
|
args: --output-dir coverage --out xml --workspace --exclude benchmarks
|
|
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v4.0.1
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
slug: rust-bakery/nom
|