Revision control

Copy as Markdown

Other Tools

version: 2.1
jobs:
build:
parameters:
features:
type: string
rustversion:
type: string
latestrustversion:
type: string
docker:
- image: cimg/rust:<< parameters.rustversion >>
environment:
FEATURES: << parameters.features >>
RUST_VERSION: << parameters.rustversion >>
LATEST_RUST: << parameters.latestrustversion >>
steps:
- checkout
- run: "[ $LATEST_RUST != $RUST_VERSION ] && echo Skipping installing rustfmt || rustup component add rustfmt"
- run: "[ $LATEST_RUST != $RUST_VERSION ] && echo Skipping installing clippy || rustup component add clippy"
- run: cargo --version
# cargo-tarpaulin for code coverage
# This will be landed in a future update
# - run: "[ $LATEST_RUST != $RUST_VERSION ] && echo Skipping cargo tarpaulin || RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin -f"
# cargo-audit
- run: sudo apt-get update
- run: sudo apt-get install pkg-config libssl-dev
- run: cargo generate-lockfile
# NOTE: not to be done except with the latest version
- run: "[ $LATEST_RUST != $RUST_VERSION ] && echo Skipping cargo audit || (cargo install --force cargo-audit && cargo audit)"
# NOTE: not to be done in nightly
- run: "[ $LATEST_RUST != $RUST_VERSION ] && echo Skipping cargo fmt || cargo fmt --all -- --check"
- run: cargo clean
- run: cargo build --verbose --all --features=$FEATURES
# NOTE: not to be done in nightly
- run: "[ $LATEST_RUST != $RUST_VERSION ] && echo Skipping cargo clippy || cargo clippy --all-targets --all-features -- -D warnings"
- run: cargo test --all-targets --all-features --verbose --all
# Parser tests
- run: cargo run --example file_parser examples/sdps/02.sdp
- run: cargo run --example file_parser examples/sdps/03.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/04.sdp
- run: cargo run --example file_parser examples/sdps/05.sdp
- run: cargo run --example file_parser examples/sdps/06.sdp
- run: cargo run --example file_parser examples/sdps/07.sdp
- run: cargo run --example file_parser examples/sdps/08.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/09.sdp
- run: cargo run --example file_parser examples/sdps/10.sdp
- run: cargo run --example file_parser examples/sdps/11.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/12.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/13.sdp
- run: cargo run --example file_parser examples/sdps/14.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/15.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/16.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/17.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/18.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/19.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/20.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/21.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/22.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/23.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/24.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/25.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/26.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/27.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/28.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/29.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/30.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/31.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/32.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/33.sdp --expect-failure
- run: cargo run --example file_parser examples/sdps/34.sdp
- run: cargo run --example file_parser examples/sdps/35.sdp
- run: cargo run --example file_parser examples/sdps/36.sdp
- run: cargo run --example file_parser examples/sdps/37.sdp
- run: cargo run --example file_parser examples/sdps/38.sdp
- run: cargo run --example file_parser examples/sdps/39.sdp
- run: cargo run --example file_parser examples/sdps/40.sdp
- run: cargo run --example file_parser examples/sdps/41.sdp --expect-failure
#TODO run code coverage
#TODO split into build and test
workflows:
workflow:
jobs:
- build:
matrix:
parameters:
features: ["", "serialize"]
rustversion: ["1.70.0", "1.81"]
latestrustversion: ["1.81"]