From 2796ec1cf2c63b44c7cdd7a641d7a2c6e158f279 Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Thu, 26 Jun 2025 21:16:03 +0300 Subject: [PATCH] CI/Nix: separate xdph from hl --- .github/workflows/nix-build.yml | 56 --------------------------------- .github/workflows/nix-ci.yml | 18 ++++++++--- .github/workflows/nix.yml | 25 +++++++++++++++ 3 files changed, 39 insertions(+), 60 deletions(-) delete mode 100644 .github/workflows/nix-build.yml create mode 100644 .github/workflows/nix.yml diff --git a/.github/workflows/nix-build.yml b/.github/workflows/nix-build.yml deleted file mode 100644 index 7c61d7751..000000000 --- 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 cf5430acd..1c52d0ab7 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 000000000..728c6e3d8 --- /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 }}