name: Update `flake.lock` on: workflow_dispatch: push: branches: ['main'] schedule: - cron: '0 0 * * 6' # runs weekly on Saturday at 00:00 jobs: update_lockfile: runs-on: docker steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install nix uses: https://github.com/DeterminateSystems/nix-installer-action@main - name: Update flake.lock id: update run: | nix flake update 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: path: pr_body.template contents: | - The following Nix Flake inputs were updated: ``` ${{ env.UPDATE_LOG }} ``` Auto-generated by [update-flake-inputs.yaml][1] with the help of [create-pull-request][2]. [1]: https://git.peprolinbot.com/peprolinbot/frues-clan/src/branch/main/.forgejo/workflows/update-flake-inputs.yaml [2]: https://forgejo.stefka.eu/jiriks74/create-pull-request - name: Generate PR body uses: https://github.com/pedrolamas/handlebars-action@v2.4.0 with: files: "pr_body.template" output-filename: "pr_body.md" - name: Save PR body id: pr_body uses: https://github.com/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 uses: https://github.com/maxking/forgejo-create-pr@main with: token: ${{ secrets.FORGEJO_TOKEN }} base: 'main' pr-branch: 'flake-update' add-paths: '.' commit-message: | automated: Update `flake.lock` ${{ steps.pr_body.outputs.content }} pr-title: 'automated: Update `flake.lock`' pr-body: ${{ steps.pr_body.outputs.content }}