English
Release checklist
A release reaches every server that presses Update in its panel, runs w-ui update, or installs fresh. Nothing on this list is optional.
1. Before anything is tagged
2. main is green
3. A soak on dev-latest
The dev-latest pre-release is rebuilt from every green push to main. Before the tag:
4. The tag
bash
git tag -a vX.Y.Z -m "W-UI X.Y.Z"bash
git push origin vX.Y.ZOnly once step 2 is green. The release workflow checks it anyway: its first job waits for CI on main to finish for exactly the tagged commit, looking every 30 seconds for up to 30 minutes, and nothing is built unless it finished green. If it finished red, never ran, or was still going when the wait ran out, the release stops; once CI is green, re-run the workflow from the Actions tab. It also refuses to publish without the signing key.
5. After it is out
Testing the release guard without releasing
The check the release workflow runs first can be run by hand; it only reads:
bash
GITHUB_TOKEN=<a token that can read Actions> go run ./tools/release ci-passed -repo AbolfazlTafakori/w-ui -sha "$(git rev-parse HEAD)"It waits while CI is still going (-every, -timeout), then prints the green run or why there is none. Its tests (go test ./tools/release) cover a green run, a red one, one still running that then goes green or red, one that outlasts the wait, a re-run, another branch and another commit, and check that release.yml waits for it and fails without the signing key.
