Skip to content

Quickstart

Add the quality workflows to a repo with the standard-ci CLI. It has no dependencies and supports Python 3.8 and newer. You need push access and, for C++ analysis, a Docker image with your build tools.

1. Install and generate

pip install git+https://github.com/PavelGuzenfeld/standard.git
cd your-repo
standard-ci init --preset recommended

It detects languages from CMakeLists.txt, package.xml and pyproject.toml, and writes:

  • .github/workflows/cpp-quality.yml
  • .github/workflows/python-quality.yml and .github/workflows/sast-python.yml
  • .github/workflows/infra-lint.yml
  • .standard.yml, which the compliance bot reads

Each ref is pinned to the commit SHA of the latest tag, with the tag as a comment. standard-ci fills in <sha> and <tag>. Use --pin TAG to pick another tag:

uses: PavelGuzenfeld/standard/.github/workflows/cpp-quality.yml@<sha> # <tag>

2. Pick a preset

Preset Enabled beyond defaults Use case
minimal Python SAST: Semgrep, pip-audit Fast CI, essential checks
recommended + clang-format, file naming, flawfinder, infra-lint Coverage and speed balanced
full + banned patterns, doctest, SARIF, sanitizers, IWYU, more infra-lint, CodeQL Everything

The inputs per preset are in src/standard_ci/presets.py.

3. Commit and push

The next PR runs the checks. To copy a workflow by hand instead, use the starter workflows.

4. Keep the pins current

standard-ci update
standard-ci update --dry-run
standard-ci check

With .standard.yml in the repo, the compliance bot also opens a PR for outdated pins. Compliance covers setup.