Skip to content

Gitlab CI Release Automation - T8136

Ritesh Raj Sarraf requested to merge wip/ritesh/release-automation.main into main

This MR integrates the Apertis Release Process into the Gitlab CI Pipeline.

In its current form, it can talk a couple of transports: git and osc. ssh transport is planned for the next iteration, which is when this whole pipeline will be fully automated.

Right now, all commands that require being run on the OBS Backend over SSH are simply printed to the console in the individual job. These jobs are marked manual to ensure that a human tends to it, reads the output and executes the same on the OBS Backend.

For other jobs that make use of git and/or osc, everything is fully automated. It has been ensured to set the right dependency among the jobs. To see the dependency tree, look into an example run pipeline and toggle the Show Dependencies button.

This pipeline, by default, runs in dry run mode. It expects the usual RELEASE and NEXT_RELEASE variables to be set when triggering the pipeline. If values aren't provided, certain defaults are taken to make the dry run run successfully. To actually run in effective mode, pass the run variable with "" as an argument through the Gitlab pipeline page.

Credentials/Secrets for OBS server and Gitlab and fed in through CI/CD Variables. So it is important to restrict access to the apertis-infrastructure repository to only the needful. git auth is done over PAT Personal Access Token. For OBS, an oscrc is derived from a secret variable.

Note: Some of the older release script have been touched while integrating them with the Gitlab CI pipeline. The ultimate intent is to use the release scripts in CI Pipeline as well as when manually run.

Edited by Ritesh Raj Sarraf

Merge request reports