Repository navigation
ci cd
All automation lives in .github/workflows. Three workflows keep the project healthy and
publish its artifacts and documentation.
| Property | Value |
|---|---|
| Triggers | Push to master, pull requests, manual dispatch |
| Runner | windows-latest |
| Steps | Restore, build (Release), test, upload test results and coverage |
The build runs the Meziantou and Roslynator analyzers with warnings treated as errors, so a green CI run means zero compiler and analyzer warnings.
Test results (*.trx) and coverage output are uploaded as the test-results artifact.
| Property | Value |
|---|---|
| Triggers | Push of a v* tag, or manual dispatch with a tag input |
| Runner |
windows-latest (verify + package), ubuntu-latest (publish) |
| Permissions | contents: write |
Flow:
- verify - builds and runs the full test suite.
-
package - publishes
win-x64andwin-arm64builds and creates:RomValidator_<version>_win-x64.zipRomValidator_<version>_win-arm64.zip- a
.sha256checksum file for each zip.
- release - creates a GitHub release for the tag and attaches all zips and checksums, with automatically generated release notes.
git tag v2.9.0
git push origin v2.9.0The version in the zip names comes from the tag (a leading v is stripped). Keep the tag in
sync with AssemblyVersion / FileVersion in RomValidator.csproj.
A manual dispatch of the workflow with the tag input can be used to re-publish an existing tag.
| Property | Value |
|---|---|
| Triggers | Push to master that changes docs/** or the workflow itself, manual dispatch |
| Permissions |
contents: write, pages: write, id-token: write
|
The pages job builds this documentation with Jekyll (using the
just-the-docs theme) and deploys it with the
official GitHub Pages actions:
-
actions/configure-pages- enables Pages with the "GitHub Actions" source when needed. -
actions/jekyll-build-pages- buildsdocs/into_site/. -
actions/upload-pages-artifact+actions/deploy-pages- publishes the site.
The site is available at https://purelogiccode.github.io/RomValidator/.
One-time setup
If the Pages site has never been enabled, open Settings > Pages and select GitHub Actions as the source, or let
configure-pagesenable it on the first run.
The wiki job runs .github/scripts/publish-wiki.sh, which:
- clones
<repository>.wiki.git, - strips YAML front matter from every
docs/*.mdpage and copies the content to the wiki (index.mdbecomesHome.md), - generates
_Sidebar.mdfrom the page titles and sections, - commits and pushes only when something changed.
The wiki clone and push require a token that is allowed to write to the wiki repository. Create a
repository secret named WIKI_TOKEN (classic personal access token with the repo scope) to
guarantee this. If the secret is absent, the workflow falls back to GITHUB_TOKEN; on
repositories where GITHUB_TOKEN cannot push to the wiki the job emits a warning and skips the
sync instead of failing.
First wiki page
A wiki repository does not exist until the first page has been created in the GitHub UI. Open the Wiki tab once and save a page, then run the workflow again.