Skip to content

ci(release): ask the website to rebuild once the release exists - #24

Merged
Flosk6 merged 1 commit into
masterfrom
ci/site-dispatch
Oct 10, 2026
Merged

Flosk6 merged 1 commit into
masterfrom
ci/site-dispatch

Conversation

@Flosk6

@Flosk6 Flosk6 commented Oct 10, 2026

Copy link
Copy Markdown
Owner

What and why

https://spawner.run builds its documentation from the latest release of Spawner. Today it notices a release at its daily build, up to a day later, and GitHub stops scheduled workflows after 60 days without activity in a public repository: the site could stop following the releases without a word.

Once the GitHub release of a stable version exists, the release job now sends a repository_dispatch (spawner-release) to Flosk6/spawner-site, whose deploy workflow already listens for it.

  • The token is SITE_DISPATCH_TOKEN, a secret of the release environment rather than of the repository: only the release job, which a reviewer approves, reads it. It is a fine-grained token limited to Flosk6/spawner-site, with Contents in read and write, the only permission repository_dispatch accepts. It is a step of the existing release job, so no third approval.
  • Without the token, or once it expires, the step prints a notice and the release goes on (continue-on-error); the daily build still follows the release. Prereleases do not trigger it, since the site follows the latest stable release.
  • scripts/README.md and architecture.md say so.

Checks

  • Tests next to the code, a compose fixture for a policy change, or an end-to-end check

  • Documentation and CHANGELOG.md updated when the behaviour changes (nothing users notice: no changelog line)

  • release.yml is valid YAML; the new step's script passes bash -n.

  • Not run yet: the first stable release after this merges sends the event. The receiving side (the site's deploy on repository_dispatch) is checked once 2.2.0 is out.

spawner.run builds its docs from the latest release, at a daily run that GitHub also stops after 60 days without activity in its repository. Once the GitHub release of a stable version exists, the release job sends it a repository_dispatch (spawner-release), with SITE_DISPATCH_TOKEN: a secret of the release environment, so that only that job reads it, holding a fine-grained token limited to Flosk6/spawner-site (Contents in read and write, which repository_dispatch needs). Without the token, or once it expires, the step says so and the release goes on.
@Flosk6
Flosk6 merged commit d86536b into master Oct 10, 2026
4 checks passed
@Flosk6
Flosk6 deleted the ci/site-dispatch branch October 10, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant