summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorMihai Fufezan <mihai@fufexan.net>2025-06-26 21:16:03 +0300
committerMihai Fufezan <mihai@fufexan.net>2025-06-26 23:38:23 +0300
commit2796ec1cf2c63b44c7cdd7a641d7a2c6e158f279 (patch)
tree05c0a4a43f0b1b2a17a3cc6dfa436673a24dd14e /.github
parent3d6476c9021519995239ec93bbb11f0dce6c60a0 (diff)
CI/Nix: separate xdph from hl
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/nix-build.yml56
-rw-r--r--.github/workflows/nix-ci.yml18
-rw-r--r--.github/workflows/nix.yml25
3 files changed, 39 insertions, 60 deletions
diff --git a/.github/workflows/nix-build.yml b/.github/workflows/nix-build.yml
deleted file mode 100644
index 7c61d775..00000000
--- a/.github/workflows/nix-build.yml
+++ /dev/null
@@ -1,56 +0,0 @@
-name: Nix (Build)
-
-on:
- workflow_call:
- secrets:
- CACHIX_AUTH_TOKEN:
- required: false
-
-jobs:
- build:
- strategy:
- matrix:
- package:
- - hyprland
- # - hyprland-cross # cross compiling fails due to qt
- # failure chain: hyprland-qtutils -> qt6.qtsvg -> qt6.qtbase -> psqlodbc & qt6.qttranslations
- - xdg-desktop-portal-hyprland
-
- runs-on: ubuntu-latest
- steps:
- - name: Install Nix
- uses: nixbuild/nix-quick-install-action@v31
- with:
- nix_conf: |
- keep-env-derivations = true
- keep-outputs = true
-
- - name: Restore and save Nix store
- uses: nix-community/cache-nix-action@v6
- with:
- # restore and save a cache using this key
- primary-key: nix-${{ runner.os }}
- # if there's no cache hit, restore a cache by this prefix
- restore-prefixes-first-match: nix-${{ runner.os }}
- # collect garbage until the Nix store size (in bytes) is at most this number
- # before trying to save a new cache
- # 1G = 1073741824
- gc-max-store-size-linux: 5G
- # do purge caches
- purge: true
- # purge all versions of the cache
- purge-prefixes: nix-${{ runner.os }}
- # created more than this number of seconds ago
- purge-created: 0
- # or, last accessed more than this number of seconds ago
- # relative to the start of the `Post Restore and save Nix store` phase
- purge-last-accessed: 0
- # except any version with the key that is the same as the `primary-key`
- purge-primary-key: never
-
- - uses: cachix/cachix-action@v15
- with:
- name: hyprland
- authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
-
- - run: nix build 'github:hyprwm/Hyprland?ref=${{ github.ref }}#${{ matrix.package }}' -L --extra-substituters "https://hyprland.cachix.org"
diff --git a/.github/workflows/nix-ci.yml b/.github/workflows/nix-ci.yml
index cf5430ac..1c52d0ab 100644
--- a/.github/workflows/nix-ci.yml
+++ b/.github/workflows/nix-ci.yml
@@ -1,4 +1,4 @@
-name: Nix (CI)
+name: Nix
on: [push, pull_request, workflow_dispatch]
@@ -8,13 +8,23 @@ jobs:
uses: ./.github/workflows/nix-update-inputs.yml
secrets: inherit
- build:
+ hyprland:
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork)
- uses: ./.github/workflows/nix-build.yml
+ uses: ./.github/workflows/nix.yml
secrets: inherit
+ with:
+ command: nix build 'github:hyprwm/Hyprland?ref=${{ github.ref }}' -L --extra-substituters "https://hyprland.cachix.org"
+
+ xdph:
+ if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork)
+ needs: hyprland
+ uses: ./.github/workflows/nix.yml
+ secrets: inherit
+ with:
+ command: nix build 'github:hyprwm/Hyprland?ref=${{ github.ref }}#xdg-desktop-portal-hyprland' -L --extra-substituters "https://hyprland.cachix.org"
test:
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork)
- needs: build
+ needs: hyprland
uses: ./.github/workflows/nix-test.yml
secrets: inherit
diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml
new file mode 100644
index 00000000..728c6e3d
--- /dev/null
+++ b/.github/workflows/nix.yml
@@ -0,0 +1,25 @@
+name: Build
+
+on:
+ workflow_call:
+ inputs:
+ command:
+ required: true
+ type: string
+ description: Command to run
+ secrets:
+ CACHIX_AUTH_TOKEN:
+ required: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: DeterminateSystems/nix-installer-action@main
+
+ - uses: cachix/cachix-action@v15
+ with:
+ name: hyprland
+ authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
+
+ - run: ${{ inputs.command }}