language: rust rust: nightly sudo: false jobs: include: - name: "Main" script: - | RUN_CLIPPY=true rustup component add clippy --toolchain=nightly || RUN_CLIPPY=false - cargo test --workspace --all-features - | 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: "Stable" rust: stable script: # Skip `--all-features` because stable Rocket isn't released yet - cargo test --workspace - name: "Benchmarks" script: - (cd benchmarks && cargo test --benches --locked) - 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