Skip to content

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.