summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r--.github/workflows/ci.yaml60
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