Jenkins¶
FrostFS repositories run their CI in Jenkins: https://ci.frostfs.info
Jenkins uses TrueCloudLab SSO for user login but most common usage scenarios do not require authentication:
- Checking CI run status
- Vieiwing CI job logs
- Fetching CI job artifacts (e.g. Allure reports)
Logging in is only required for privileged actions (retrigger failed job, launch manually triggered job).
CI configuration¶
FrostFS repository maintainers own their CI pipelines. No special permissions
are needed to modify .ci/Jenkinsfile in any repository: upload changes for
code review and follow the usual process.
Continuous delivery/deployment¶
Continuous delivery/deployment pipelines execute the same .ci/Jenkinsfile as
CI but in a more privileged environment with access to sensitive secrets.
Use onPush to skip parts of pipeline in CI but not in CD (this will avoid
failing CI because of missing CD secrets).
To enable CD pipelines for a repository add jenkins.onpush tag in Forgejo
and run make codegen in TrueCloudLab/jenkins.
Pipeline DSL¶
TrueCloudLab provides a bespoke DSL to simplify writing CI pipelines by abstracting away Jenkins rough edges and boilerplate that are not relevant from repository maintainer point of view.
Instance configuration¶
Jenkins configuration lives in its own repository. It contains controller configuration, agent setup, DSL library and localci script that anyone can use to launch their own clone of our Jenkins.