From b5cece494f5b45adfe0b4954fdc54d383d630e21 Mon Sep 17 00:00:00 2001 From: jiriks74 Date: Fri, 13 Dec 2024 14:02:34 +0100 Subject: [PATCH] fix: Use custom action for updating `flake.lock` --- .github/workflows/update.yml | 82 +++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 11 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index b4796b9..e74c1b5 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -14,17 +14,77 @@ jobs: 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 - with: - fail-mode: true + - name: Update flake.lock - uses: https://github.com/DeterminateSystems/update-flake-lock@main + id: update + run: | + nix flake update --commit-lock-file 2> >(tee /dev/stderr) | awk ' + /^• Updated input/ {in_update = 1; print; next} + in_update && !/^warning:/ {print} + /^$/ {in_update = 0} + ' > update.log + + echo "UPDATE_LOG<> $GITHUB_ENV + cat update.log >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + rm update.log + + - name: Write PR body template + uses: https://github.com/DamianReeves/write-file-action@v1.3 with: - # inputs: dzgui dzgui-testing # We'll see whether I want to limit the updates to dzgui - token: ${{ secrets.FORGEJO_TOKEN_FOR_UPDATES }} - pr-title: "Update flake.lock" - pr-assignees: jiriks74 - pr-labels: | - flake.lock - automated + path: pr_body.template + contents: | + - The following Nix Flake inputs were updated: + + ``` + ${{ env.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@v2.4.0 # v2.4.0 + with: + files: "pr_body.template" + output-filename: "pr_body.md" + - name: Generate commit message + run: | + cp pr_body.md commit_body.md + sed -i '1s/^/Update `flake.lock`/' commit_body.md + cat commit_body.md + - name: Save PR body + id: pr_body + uses: juliangruber/read-file-action@v1 + with: + path: "pr_body.md" + - name: Save commit body + id: commit_body + uses: juliangruber/read-file-action@v1 + with: + path: "commit_body.md" + + - name: Remove temporary files + run: | + rm pr_body.template + rm pr_body.md + rm commit_body.md + + - name: Create Pull Request + id: create-pull-request + uses: https://forgejo.stefka.eu/jiriks74/create-pull-request@9791a4f146d5369620ea3b934822e717d3d90034 + with: + token: ${{ secrets.FORGEJO_TOKEN_FOR_UPDATES }} + body: ${{ steps.pr_body.outputs.content }} + title: 'automated: Update `flake.lock`' + + branch: update-flake-lock + delete-branch: true - name: Print PR number - run: echo Pull request number is ${{ steps.update.outputs.pull-request-number }}. + run: | + echo "Pull request number is ${{ steps.create-pull-request.outputs.pull-request-number }}." + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"