CI setup in our Gerrit instance¶
Each new patchset submitted to Gerrit for review will trigger a continuous integration check:
- Jenkins pipeline defined in
.ci/Jenkinsfilewill be executed on our Jenkins instance. Missing.ci/Jenkinsfilewill cause this check to fail. - Commit message format will be validated using dco-go. Submit pull requests to dco-go if you need to modify validation logic.
Failure of any of these checks will prevent the change from being merged. Gerrit administrators can override CI automation votes but should resort to this only in disaster recovery scenarios.
Retrigger CI jobs in Jenkins¶
If you need to rerun some previously executed CI job for a Gerrit patchset you must use 'Retrigger' button in Jenkins UI. Using 'Rebuild' or 'Replay' will re-execute the job but will not submit the resulting vote to the relevant Gerrit review thread.
You should not need to retrigger CI jobs during normal operation. If some CI checks are flaky report an issue to the project repository. If CI check crashed due to an infrastructure problem - report an issue to frostfs-infra.
Using [skip ci] tag in commit message¶
If you wish to avoid triggering CI pipeline for a specific Gerrit changeset
you may add [skip ci] to commit message header. This will disable
.ci/Jenkinsfile execution for the current commit.
Setting [skip ci] will make the change unmergeable because of the missing
'Verified +1' vote. Use this only if you wish to try some new (to you) Gerrit
functionality while avoiding unnecessary load on CI infrastructure.
If you will eventually need to merge this patchset, remove [skip ci] tag from
the commit message and wait for CI checks to pass.
This feature is intended to be used only for playground purposes. Merging changes that bypass CI checks is intentionally not implemented.