Skip to content

CI/CD Pipeline

Patrizio uses GitHub Actions for continuous integration and deployment.

Workflow files

Step Description
Commit Runs markdownlint and golangci-lint. Ensures tests pass.
Docker Builds the docker image and pushes it in the GitHub Container Registry (GHCR) of the project
Docs Publishes the project website upon a new commit landing in main or when a new release happens

For more details about the implementations, see the .github/workflows/ folder in the repository.

Pre-commit

An additional tool that is used by the project is pre-commit. It allows to enforce some standardization across the codebase, especially regarding linting and formatting. It also enforces test run at push time. This is particularly useful when pushing directly into the main branch. Also, when using AI assistance, pre-commit acts as guardrail ensuring the codebase written already meets a lower bar before human review. Finally, tests upon committing force the AI to actually have a look at them before pushing.

Note

Note that AI can still get around these checks. Nothing stops them from using the good old git push --no-verify.

The logic behind these steps

The idea of CI/CD steps together with Pre-commit checks is to ensure that the project stays stable. Finally, further automation is planned for automatic changelogs and releases.