From e0ddec8015e93dbf1264c38b3633c22451754d63 Mon Sep 17 00:00:00 2001
From: Thomas Frank <thomas.frank@esrlabs.com>
Date: Fri, 20 Dec 2024 14:35:03 +0100
Subject: [PATCH] Fix up github actions

Change-Id: I585b96bca403c6af8c2f986e344219c472880d7c
---
 .github/workflows/format.yml                  | 29 +++++++------------
 ...tegrationtest.yml => integration_test.yml} |  7 +++--
 flake.nix                                     |  6 ++++
 3 files changed, 21 insertions(+), 21 deletions(-)
 rename .github/workflows/{integrationtest.yml => integration_test.yml} (75%)

diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index 311f5c12ac..951952ec7f 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -6,31 +6,22 @@ jobs:
   treefmt:
     runs-on: ubuntu-latest
     steps:
-      - name: Create user program directory
-        run: |
-          mkdir -p $HOME/.local/bin
-          echo "$HOME/.local/bin" >> "$GITHUB_PATH"
+      - uses: actions/checkout@v4
+
+      - uses: DeterminateSystems/nix-installer-action@main
+      - uses: DeterminateSystems/magic-nix-cache-action@main
 
       - name: Install treefmt
-        run: |
-          curl -L https://github.com/numtide/treefmt/releases/download/v2.1.0/treefmt_2.1.0_linux_amd64.tar.gz -o treefmt.tar.gz
-          tar -xvzf treefmt.tar.gz
-          install -m 755 treefmt $HOME/.local/bin
-          rm LICENSE README.md treefmt treefmt.tar.gz
+        run: nix profile install .#treefmt
 
-      - name: Install clang-format
-        run: |
-          curl -L https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-32d3ac78/clang-format-17_linux-amd64 -o clang-format
-          install -m 755 clang-format $HOME/.local/bin
-          rm clang-format
+      - name: Install nixfmt
+        run: nix profile install .#nixfmt
 
-      - uses: actions/setup-python@v5
+      - name: Install clang-format
+        run: nix profile install .#clang-format
 
       - name: Install cmake-format
-        run: |
-          pip install cmakelang
-
-      - uses: actions/checkout@v4
+        run: nix profile install .#cmake-format
 
       - name: Check code format
         run: |
diff --git a/.github/workflows/integrationtest.yml b/.github/workflows/integration_test.yml
similarity index 75%
rename from .github/workflows/integrationtest.yml
rename to .github/workflows/integration_test.yml
index e1a1597b03..43e7391a3d 100644
--- a/.github/workflows/integrationtest.yml
+++ b/.github/workflows/integration_test.yml
@@ -1,6 +1,9 @@
-on: push
+name: Integration Tests
+
+on: [ merge_group, pull_request]
+
 jobs:
-  integration_test:
+  integration-test:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v4
diff --git a/flake.nix b/flake.nix
index bc59a7aa5f..16d589917c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -31,6 +31,12 @@
             referenceApp_S32K148 = pkgs.callPackage ./nix/referenceApp_S32K148.nix { };
             udstool = pkgs.callPackage ./nix/udstool.nix { };
             interactiveIntegrationTests = self.checks."${system}".integrationTests.driverInteractive;
+
+            # re-export of formatters
+            treefmt = treefmt.packages."${system}".default;
+            nixfmt = pkgs.nixfmt-rfc-style;
+            clang-tools = pkgs.llvmPackages_17.clang-tools;
+            cmake-format = pkgs.cmake-format;
           };
           checks = {
             integrationTests = import ./nix/IntegrationTests.nix { inherit pkgs self system; };