name: Rust on: push: branches: [ main ] pull_request: types: [opened, reopened, synchronize] env: CARGO_TERM_COLOR: always jobs: test: name: cargo test runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Build run: cargo build --verbose --workspace - name: Run tests run: cargo test --verbose --workspace - name: Generate GraphQL schema run: cargo run -- export_graphql_schema -o generated_schema.graphql - name: Check schema run: diff schema.graphql generated_schema.graphql || (echo "The schema file is out of date. Please run `./export_schema.sh`" && false) clippy: name: cargo clippy runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install nightly toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt, clippy - name: Run cargo clippy uses: actions-rs/cargo@v1 with: command: clippy args: --tests --all -- -D warnings format: name: cargo fmt runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Install nightly toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt, clippy - name: Run cargo fmt uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check