# Formatting and lints, as `just lint` checks the Rust, on every branch # pushed; test.yml runs the tests. On a pull, that a change to the client # comes with a change file (harness/changes.sh). # # The image is the Rust `just lint` runs locally, so a newer release's new # lints land on purpose. The build and the toolchain's components are kept # between runs, so a push lints only what it changed. image: rust:1.98 # A pre-flight: the merge queue takes a pull into a batch only once this # has passed at its head, so one that does not build fails no batch. queue: first # Pushes to main, and pulls into it or a feature/ branch, at their heads # merged with their base. on: push: {refs: [refs/heads/main]} pull: {base: [refs/heads/main, refs/heads/feature/*]} cache: [target, /usr/local/cargo/registry, /usr/local/rustup] steps: # cargo fmt --check, then clippy over the workspace, warnings denied. - uses: chadtmiller.com/steps/rust-lint@1 - name: changes run: harness/changes.sh