name: Update flake.lock on: schedule: # run every saturday - cron: "0 0 * * 6" workflow_dispatch: jobs: update: name: Update runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout repository uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 - name: Install Nix uses: DeterminateSystems/nix-installer-action@8cdf194da984e4f12b2f8c36d1fa107c1dd67f5c # v11 - name: Set Git user info run: | git config user.name 'github-actions[bot]' git config user.email 'github-actions[bot]@users.noreply.github.com' - name: Create new branch id: branch run: | branch="update-flake-lock" echo "branch=$branch" >> "$GITHUB_OUTPUT" git switch -c "$branch" - name: Update flake inputs run: | nix flake update \ --commit-lock-file \ --commit-lockfile-summary "chore: update flake inputs" - name: Update test flake inputs run: | pushd ./test nix flake update \ --commit-lock-file \ --commit-lockfile-summary "chore: update test flake inputs" popd - name: Make PR if needed env: GH_TOKEN: ${{ github.token }} BRANCH: ${{ steps.branch.outputs.branch }} run: | if ! git diff --color=always --exit-code origin/main; then git fetch origin "$BRANCH" || true git push --force-with-lease -u origin "$BRANCH" gh pr create \ --base main \ --head "$BRANCH" \ --title "chore: update flake inputs" \ --fill fi