diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index b4796b9..35834a2 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -14,17 +14,55 @@ 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 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 "update_log=${LOG}" >> $GITHUB_OUTPUT + + cat << EOF >> ../body.md + - The following Nix Flake inputs were updated + + \`\`\` + EOF + + cat update.log >> ../body.md + + cat << EOF >> ../body.md + \`\`\` + + Auto-generated by [update.yml][1] with the help of + [create-pull-request][2] + + [1]: https://forgejo.stefka.eu/jiriks74/action-update_flake_lock + [2]: https://forgejo.stefka.eu/jiriks74/create-pull-request + EOF + + rm update.log + + - name: Create Pull Request + id: create-pull-request + uses: https://forgejo.stefka.eu/jiriks74/create-pull-request@9791a4f146d5369620ea3b934822e717d3d90034 + body-path: ../body.md 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 + 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.update.outputs.pull-request-number }}. + run: | + echo "Pull request number is ${{ steps.create-pull-request.outputs.pull-request-number }}." + echo ${{ steps.update.output.update_log }}