name: Update `flake.lock` on: workflow_dispatch: schedule: - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 jobs: update_lockfile: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install nix uses: https://github.com/DeterminateSystems/nix-installer-action@main - name: Setup Action cache for nix uses: https://github.com/DeterminateSystems/magic-nix-cache-action@main - name: Update flake.lock id: update run: | nix flake update 2>&1 | awk ' /^• Updated input/ {in_update = 1; print; next} in_update && !/^warning:/ {print} /^$/ {in_update = 0} ' | tee update.log LOG=$(cat update.log) LOG="${LOG//'%'/'%25'}" LOG="${LOG//$'\n'/'%0A'}" LOG="${LOG//$'\r'/'%0D'}" echo $LOG echo "update_log=${LOG}" >> $GITHUB_OUTPUT rm update.log - name: Write PR body template uses: https://github.com/DamianReeves/write-file-action@v1.3 with: path: pr_body.template contents: | - The following Nix Flake inputs were updated: ``` ${{ steps.update.output.update_log }} ``` Auto-generated by [update.yml][1] with the help of [create-pull-request][2] [1]: https://forgejo.stefka.eu/jiriks74/nix.nvim/src/branch/main/.github/workflows/update.yml [2]: https://forgejo.stefka.eu/jiriks74/create-pull-request - name: Generate PR body uses: pedrolamas/handlebars-action@2995d7eadacbc8f2f6ab8431a01d84a5fa3b8bb4 # v2.4.0 with: files: "pr_body.template" output-filename: "pr_body.md" - name: Save the PR body id: pr_body uses: juliangruber/read-file-action@v1 with: path: "pr_body.md" - name: Remove temporary files run: | rm pr_body.template rm pr_body.md - name: Create Pull Request id: create-pull-request uses: https://forgejo.stefka.eu/jiriks74/create-pull-request@9791a4f146d5369620ea3b934822e717d3d90034 body: ${{ steps.pr_body.outputs.content }} with: token: ${{ secrets.FORGEJO_TOKEN_FOR_UPDATES }} commit-message: Update `flake.lock` title: Update `flake.lock` branch: update-flake-lock - name: Print PR number run: | echo "Pull request number is ${{ steps.create-pull-request.outputs.pull-request-number }}."