summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
authorseth <[email protected]>2024-08-09 23:35:41 -0400
committerGitHub <[email protected]>2024-08-09 23:35:41 -0400
commitb643a6a235b0c1c9902b97421f24eff2b0d0a5ac (patch)
tree350794c0e9330fb77367838313bc6bb97278a0aa /.github/workflows/ci.yaml
parent372780546b508684839916e5ad54c9e90456a94f (diff)
tree-wide: end of summer cleanup (#214)
* api: refactor & rename module to http * client: split from main.rs * tree-wide: use eyre::Report as error * nix: alejandra -> nixfmt * nix: start using treefmt-nix * nix: simplify flake * nix: refactor derivation & docker image * nix: remove overlay * ci: update & cleanup workflows * commands: assign all commands automatically * commands/copypasta: remove * http/teawie: update response struct for upstream rust rewrite * handlers: rename modules to events; flatten * crates: rename self to teawie-bot * nix: fenix -> rust-overlay i want a specific rust version grrrrrrr * ci: pin rust to 1.79 this is what our nix dev shell uses and what we can compile on. it seems the time crate doesn't like v1.80 of the compiler :( * ci: always run release gates * nix: fix static toolchain * nix: rust-overlay -> nixpkgs * ci: adopt actions-rust-lang actions * nix: use docker arch names for containers * crates/time: 0.3.30 -> 0.3.36 fixes building on rust 1.80.0
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