diff --git a/.forgejo/workflows/flake-update.yaml b/.forgejo/workflows/flake-update.yaml index 6814546..f4f403d 100644 --- a/.forgejo/workflows/flake-update.yaml +++ b/.forgejo/workflows/flake-update.yaml @@ -3,7 +3,16 @@ name: flake update on: schedule: - cron: '0 3 * * *' - workflow_dispatch: {} + workflow_dispatch: + inputs: + target: + description: 'Inputs to update' + type: choice + default: all + options: + - all + - hyperhive + - trollshell jobs: update: @@ -11,23 +20,32 @@ jobs: steps: - uses: https://code.forgejo.org/actions/checkout@v4 - run: | - nix flake update + target="${{ github.event.inputs.target }}" + target="${target:-all}" + + case "$target" in + all) inputs="" ;; + hyperhive) inputs="hyperhive hyperhive-website" ;; + trollshell) inputs="trollshell" ;; + esac + + nix flake update $inputs if git diff --quiet -- flake.lock; then exit 0 fi - branch="flake-update-$(date +%F)" + branch="flake-update-${target}-$(date +%F)" git checkout -b "$branch" git -c user.name="flake-bot" -c user.email="git+flake-bot@darkest.space" \ - commit -am "nix flake update" + commit -am "nix flake update ($target)" git push "https://flake-bot:${PR_BOT_TOKEN}@forge.darkest.space/mara/nixos-configs.git" "$branch" curl -sf -X POST \ -H "Authorization: token ${PR_BOT_TOKEN}" \ -H "Content-Type: application/json" \ - -d "$(jq -n --arg h "$branch" \ - '{title: "nix flake update", head: $h, base: "main"}')" \ + -d "$(jq -n --arg h "$branch" --arg t "$target" \ + '{title: ("nix flake update (" + $t + ")"), head: $h, base: "main"}')" \ "https://forge.darkest.space/api/v1/repos/mara/nixos-configs/pulls" env: PR_BOT_TOKEN: ${{ secrets.PR_BOT_TOKEN }}