Repository navigation
v1.3.0-rc.1
Pre-releaseHephaestus v1.3.0-rc.1
Release candidate of v1.3.0. hephaestus publish no longer assumes that
releases are cut from main: it tells the repository's default branch
from the release branch, and checks everything that guards a release on
the release branch.
Release branch
hephaestus publish check v1.2.3 # the default branch: main, master, develop...
hephaestus publish check -branch release/stable v1.2.3 # a named release branchpreflight:
branch: release/stable # read by hephaestus publish and hephaestus preflightThe release branch is -branch, else preflight.branch, else the release
repository's default branch on GitHub. A repository whose default branch is
develop can release from release/stable; one on master needs no
setting. The preflight prints both:
[ok ] default branch develop (GitHub, origin/HEAD)
[ok ] release branch release/stable (preflight.branch) at 1a2b3c4d5e6f on GitHub
Everything is checked on the release branch, never on the default branch on
its behalf:
- it is a branch name that exists on GitHub: not a tag, a commit SHA, a full
ref or a refspec; - the clone is on it, clean, with
HEAD=origin/<branch>= its head on
GitHub; - CI succeeded on it, for exactly that commit: a green default branch does
not count; - an active ruleset covering it requires
ci-gate; - right before the tag push it is fetched again and its head on GitHub read
again: a branch that moved stops publish before anything is pushed; hephaestus preflight --strict, which publish also runs, checks the same
branch.
When a branch cannot be read (no network, no access), or a local
refs/remotes/origin/HEAD names another branch than the default branch,
nothing further is checked and nothing is tagged.
See docs/publish.md.
Fixes
- A ruleset covering
~DEFAULT_BRANCHcounted as protecting whichever branch
was checked. It now counts only for the repository's default branch, in
hephaestus publishand inhephaestus preflight(github.ruleset.branch
and the required checks ofgithub.ci).
Compatibility
- Unchanged: configuration (
preflight.branchis the existing key), the
Action,publish planandpublish status, JSON fields and check IDs. - New: the
-branchflag ofhephaestus publish, and itsdefault branchandrelease branchchecks. A project onmaingets the same
checks as before plus these two; the ruleset check keeps its name
(main ruleset). - Stricter:
hephaestus preflightwith apreflight.branchother than the
default branch now warns (github.ruleset.branch) when only the default
branch's ruleset covers it.
Known limitations
hephaestus checkshows the tap pull request branch as a template;
hephaestus preflight --tagrenders it.
Full Changelog: v1.2.0...v1.3.0-rc.1