diff --git a/.github/workflows/nix-update-inputs.yaml b/.github/workflows/nix-update-inputs.yaml new file mode 100644 index 00000000..3711388d --- /dev/null +++ b/.github/workflows/nix-update-inputs.yaml @@ -0,0 +1,40 @@ +name: "Nix update" + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + update: + name: "inputs" + runs-on: ubuntu-latest + steps: + - name: Clone repository + uses: actions/checkout@v3 + + - name: Install nix + uses: cachix/install-nix-action@v20 + with: + install_url: https://nixos.org/nix/install + extra_nix_config: | + auto-optimise-store = true + access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} + experimental-features = nix-command flakes + + - name: Update lockfile + run: nix/update-nixpkgs.sh + + - uses: cachix/cachix-action@v12 + with: + name: hyprland + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + + - name: Build packages + run: nix flake check --print-build-logs --accept-flake-config + + - name: Build Waybar-Hyprland + run: nix build .#waybar-hyprland --print-build-logs + + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Nix: bump inputs" diff --git a/.github/workflows/nix-update.yaml b/.github/workflows/nix-update-wlroots.yaml similarity index 75% rename from .github/workflows/nix-update.yaml rename to .github/workflows/nix-update-wlroots.yaml index 7bd84350..25650400 100644 --- a/.github/workflows/nix-update.yaml +++ b/.github/workflows/nix-update-wlroots.yaml @@ -1,13 +1,15 @@ -name: "Nix: update lockfile" +name: "Nix update" on: [push, workflow_dispatch] jobs: update: + name: "wlroots" runs-on: ubuntu-latest steps: - name: Clone repository uses: actions/checkout@v3 + - name: Install nix uses: cachix/install-nix-action@v20 with: @@ -16,14 +18,18 @@ jobs: auto-optimise-store = true access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} experimental-features = nix-command flakes + - name: Update lockfile - run: nix/update-inputs.sh + run: nix/update-wlroots.sh + - uses: cachix/cachix-action@v12 with: name: hyprland authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - name: Build Waybar-Hyprland - run: nix build .#waybar-hyprland --print-build-logs + + - name: Build packages + run: nix flake check --print-build-logs --accept-flake-config + - uses: stefanzweifel/git-auto-commit-action@v4 with: - commit_message: "[gha] bump flake inputs" + commit_message: "Nix: bump wlroots" diff --git a/nix/update-inputs.sh b/nix/update-inputs.sh index b5aeff2e..96be06b5 100755 --- a/nix/update-inputs.sh +++ b/nix/update-inputs.sh @@ -1,24 +1,25 @@ -#!/usr/bin/env -S nix shell nixpkgs#gawk nixpkgs#git nixpkgs#gnused nixpkgs#moreutils nixpkgs#jq nixpkgs#ripgrep -c bash +#!/usr/bin/env -S nix shell nixpkgs#jq -c bash -set -ex +# Update inputs when the Mesa version is outdated. We don't want +# incompatibilities between the user's system and Hyprland. -# get wlroots revision from submodule -SUB_REV=$(git submodule status | rg wlroots | awk '{ print substr($1,2)}') -# and from lockfile -CRT_REV=$(jq $NEW_VER and flake inputs" + + # keep wlroots rev, as we don't want to update it + WLR_REV=$(nix flake metadata --json | jq -r '.locks.nodes.wlroots.locked.rev') -if [ "$SUB_REV" != "$CRT_REV" ]; then # update inputs to latest versions nix flake update - # update wlroots to submodule revision - nix flake lock --override-input wlroots "gitlab:wlroots/wlroots/$SUB_REV?host=gitlab.freedesktop.org" - - # remove "dirty" mark from lockfile - jq