Adds a check-changes job to website.yml that detects whether any website-relevant files changed since the last successful deploy, before running the expensive build.
On schedule (cron), queries the Forgejo API for the last successful website.yml run, compares head_sha to HEAD, then diffs for website/**, scripts/website-verify.sh, or .forgejo/workflows/website.yml paths.
On push or workflow_dispatch, always deploys (same behaviour as before).
The existing deploy job is unchanged in content; it now runs conditionally on needs.check-changes.outputs.has_changes == 'true'.
Modelled directly after the check-changes job already in deploy.yml.
Test plan
Verify that a cron run with no website changes shows has_changes=false and skips the deploy job
Verify that a cron run after a website commit shows has_changes=true and runs the deploy job
Verify that a manual workflow_dispatch always runs the deploy job
Verify that a push to website/** still runs the deploy job
## Summary
- Adds a `check-changes` job to `website.yml` that detects whether any website-relevant files changed since the last successful deploy, before running the expensive build.
- On `schedule` (cron), queries the Forgejo API for the last successful `website.yml` run, compares `head_sha` to `HEAD`, then diffs for `website/**`, `scripts/website-verify.sh`, or `.forgejo/workflows/website.yml` paths.
- On `push` or `workflow_dispatch`, always deploys (same behaviour as before).
- The existing `deploy` job is unchanged in content; it now runs conditionally on `needs.check-changes.outputs.has_changes == 'true'`.
Modelled directly after the `check-changes` job already in `deploy.yml`.
## Test plan
- [ ] Verify that a cron run with no website changes shows `has_changes=false` and skips the deploy job
- [ ] Verify that a cron run after a website commit shows `has_changes=true` and runs the deploy job
- [ ] Verify that a manual `workflow_dispatch` always runs the deploy job
- [ ] Verify that a `push` to `website/**` still runs the deploy job
Closes #494
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
check-changesjob towebsite.ymlthat detects whether any website-relevant files changed since the last successful deploy, before running the expensive build.schedule(cron), queries the Forgejo API for the last successfulwebsite.ymlrun, compareshead_shatoHEAD, then diffs forwebsite/**,scripts/website-verify.sh, or.forgejo/workflows/website.ymlpaths.pushorworkflow_dispatch, always deploys (same behaviour as before).deployjob is unchanged in content; it now runs conditionally onneeds.check-changes.outputs.has_changes == 'true'.Modelled directly after the
check-changesjob already indeploy.yml.Test plan
has_changes=falseand skips the deploy jobhas_changes=trueand runs the deploy jobworkflow_dispatchalways runs the deploy jobpushtowebsite/**still runs the deploy jobCloses #494
🤖 Generated with Claude Code