name: ci on: push: branches: [main] pull_request: env: CARGO_TERM_COLOR: always RUST_BACKTRACE: "1" jobs: rust: name: fmt, clippy, build, test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - name: Cache cargo artifacts uses: Swatinem/rust-cache@v2 - name: rustfmt run: cargo fmt --all -- --check - name: clippy run: cargo clippy --workspace --all-targets -- -D warnings - name: Build workspace run: cargo build --workspace --all-targets - name: Run tests run: cargo test --workspace openapi: name: OpenAPI lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Node uses: actions/setup-node@v4 with: node-version: "20" - name: Lint api/openapi.yaml run: npx --yes @redocly/cli@1 lint api/openapi.yaml docker: name: Docker image builds runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Build image run: docker build -t gannet:ci .