diff options
Diffstat (limited to '.github/workflows/ci.yaml')
| -rw-r--r-- | .github/workflows/ci.yaml | 60 |
1 files changed, 43 insertions, 17 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 9394567..f084a2a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -3,7 +3,17 @@ name: CI on: push: branches: [main] + paths: + - "**.nix" + - "**.rs" + - "**.lock" + - "Cargo.toml" pull_request: + paths: + - "**.nix" + - "**.rs" + - "**.lock" + - "Cargo.toml" workflow_dispatch: jobs: @@ -13,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [macos-latest, windows-latest] runs-on: ${{ matrix.os }} @@ -22,18 +32,14 @@ jobs: uses: actions/checkout@v4 - name: Install Rust - uses: dtolnay/rust-toolchain@stable - with: - toolchain: stable - - - name: Setup Rust cache - uses: Swatinem/rust-cache@v2 + uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Run build - run: cargo build --locked --release + run: | + cargo build --locked --release - format-and-lint: - name: Format & lint + nix: + name: Nix runs-on: ubuntu-latest @@ -42,21 +48,41 @@ jobs: uses: actions/checkout@v4 - name: Install Nix - uses: DeterminateSystems/nix-installer-action@v12 + uses: DeterminateSystems/nix-installer-action@v13 - name: Setup Nix cache uses: DeterminateSystems/magic-nix-cache-action@v7 - - name: Run treefmt + - name: Run flake checks run: | - nix flake check --all-systems --print-build-logs --show-trace + nix build --print-build-logs --show-trace + + rustfmt: + name: Rustfmt + + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install Rust + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt + + - name: Run rustfmt + uses: actions-rust-lang/rustfmt@v1 release-gate: - name: CI Release Gate - needs: [build, format-and-lint] + name: CI Release gate + needs: [build, rustfmt, nix] + + if: ${{ always() }} runs-on: ubuntu-latest steps: - - name: Exit with result - run: echo "We're good to go!" + - name: Exit with error + if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') + run: exit 1 |
