Workflow catalogue¶
Every reusable workflow in this repository, what it is for and the permissions its caller grants.
Call a workflow from a job with uses: and pin the major tag, @v1 (Versioning). Grant the
permissions in the table on the calling job; a workflow that needs more than its caller grants fails before any
job starts (Permissions contract).
| Workflow | Purpose | Permissions |
|---|---|---|
ru-ci-gate.yml |
One required status check per repository: it passes only when every other CI job passed. | contents: read |
ru-cpp-analysis.yml |
Run cppcheck over source folders, without a build, and keep the report as an artifact. | contents: read |
ru-cpp-lint.yml |
Check C and C++ formatting with clang-format and lint with clang-tidy, with results as annotations on the pull request. | contents: read, pull-requests: write |
ru-docs-linkcheck.yml |
Check every link in a repository's Markdown, external ones included, with lychee. | contents: read |
ru-docs-publish.yml |
Build a Jekyll site with Doxygen and publish it to gh-pages in version folders: the documentation pipeline that ru-mkdocs-publish replaces. |
contents: write |
ru-host-ci.yml |
Build, test and analyse a CMake project on the host, with clang-tidy 18 and cppcheck over the compiler's own compile database. | contents: read |
ru-markdown-lint.yml |
Lint Markdown with markdownlint-cli2 against the repository's own rules. | contents: read |
ru-mkdocs-publish.yml |
Build, check, audit and publish a HardFOC documentation site with the shared theme, versioned or not. | contents: write |
ru-release.yml |
Create a GitHub Release with generated notes for a tag. | contents: write |
ru-yaml-lint.yml |
Lint YAML files with yamllint against the repository's own rules. | contents: read |
Which one to use¶
| A repository that | Calls |
|---|---|
| has any CI | ru-ci-gate as the last job, the one required check |
| builds and tests C++ on the host with CMake | ru-host-ci: build, ctest, clang-tidy and cppcheck on the same compile database |
| needs formatting and lint checks on C++ | ru-cpp-lint, plus ru-cpp-analysis when it has no host build |
| has documentation | ru-mkdocs-publish (the platform), ru-docs-linkcheck for links in Markdown outside the site |
| keeps Markdown or YAML | ru-markdown-lint, ru-yaml-lint |
| tags releases | ru-release |
ESP-IDF firmware builds and releases with artifacts live in hf-espidf-ci-tools.
Next: Quickstart.