diff --git a/.github/workflows/update-nix-releases.yml b/.github/workflows/update-nix-releases.yml new file mode 100644 index 000000000..d581290b3 --- /dev/null +++ b/.github/workflows/update-nix-releases.yml @@ -0,0 +1,19 @@ +name: "Update nix releases" +on: + repository_dispatch: + workflow_dispatch: + schedule: + - cron: "31 2 * * *" +jobs: + update-nix-releases: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v31 + - name: Update nix releases + run: nix-shell --run update-nix-releases + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + title: Update nix versions + labels: dependencies diff --git a/nix/update-nix-releases.nix b/nix/update-nix-releases.nix index bb0cafc1d..99450c38a 100644 --- a/nix/update-nix-releases.nix +++ b/nix/update-nix-releases.nix @@ -24,6 +24,14 @@ writeShellApplication { | sort --reverse --version-sort \ | while read -r version; do + # ignore everything below 2.18 for speed, this might need to be adjusted in the future + majorVersion=$(echo "$version" | cut -d. -f1) + minorVersion=$(echo "$version" | cut -d. -f2) + if [ "$majorVersion" -lt 2 ] || { [ "$majorVersion" -eq 2 ] && [ "$minorVersion" -lt 18 ]; }; then + echo >&2 "Skipping $version" + continue + fi + rev=$(git -C "$tmp/nix" rev-parse "$version-maintenance") echo >&2 "Version $version on branch $version-maintenance is at $rev"