language: rust rust: nightly sudo: false jobs: include: - name: "Main" script: - | RUN_CLIPPY=true rustup component add clippy --toolchain=nightly || RUN_CLIPPY=false # As of right now, these need to be tested individually becuase `--workspace` # (which is implied by `workspace = true`) cannot be used with `--features` # This _may_ be resolved with the `--package` flag, however this requires # opting in to a `-Z` unstable feature as of time of commit. # # Follow https://github.com/rust-lang/cargo/issues/5364 for updates. - cargo test --manifest-path maud/Cargo.toml --features actix-web,iron,rocket - cargo test --manifest-path maud_htmlescape/Cargo.toml - cargo test --manifest-path maud_macros/Cargo.toml - | if $RUN_CLIPPY; then CLIPPY_STATUS=0 for package in maud_htmlescape maud_macros maud; do (cd $package && cargo clippy -- -D warnings) || CLIPPY_STATUS=$? done (exit $CLIPPY_STATUS) fi - name: "Unstable" script: - cargo test --all --all-features - name: "Benchmarks" script: - (cd benchmarks && cargo test --benches --features unstable) - name: "Documentation" script: - (cd docs && make -j$(nproc)) deploy: provider: pages skip_cleanup: true github_token: $GITHUB_TOKEN fqdn: maud.lambda.xyz local_dir: docs/site on: branch: master - name: "Format" before_script: - rustup component add rustfmt script: - cargo fmt -- --check - (cd benchmarks && cargo fmt -- --check) - (cd docs && cargo fmt -- --check) # trybuild harnesses are technically not part of the Cargo project, so # need to be checked separately - rustfmt --check maud/tests/warnings/*.rs