-
Jonas Höppner authored
The variables CI_PARAM_IMAGE, CI_PARAM_DISTRO, CI_MACHINE have been defined outside the job in the '.gitlab-ci.yml' file. This has a lower precedence then variables defined inside the job, but it seems that these variables are used in the scope of 'Trigger variables' when available in the trigger job. These override the value set in the template. As main results this made FNGSystem jobs build the normal yocto.
c503a6d4
Manifest pipeline
The pipeline running in the manifest repository is the one that does the real work, like building images, generating docs and deploying image to download servers and triggering tests in the lava test rack.
Triggers
TODO
Build jobs
TODO
Deploy and upload jobs
TODO
Test jobs
TODO
Job generation, parent child jobs
As we support images for multiple machines/architectures we are building a lot of different image variants, where each needs at least build, deploy and test job. To simplify the generation of all these jobs, without a lot of copy and paste and the possibility to configure the actual build images, we are using gitlab's dynamic-child-pipeline feature. See gitlab docs.
There is a 'generate-build-jobs' job, that creates a yaml file containing the pipeline with all needed jobs. There are the following CI variables in the 'generate-build-jobs' job controlling the content (make sure these are not set in a more global scope, as this would overwrite the settings in the generated yml):
-
CI_PARAM_MACHINES
: Space separated list of machines to build for, like "santaro santoka" -
CI_PARAM_IMAGE
: The name of the image to build. If set to an empty string, related jobs are not created. -
CI_PARAM_DISTRO
: The name of the distro to build -
CI_PARAM_IMAGE_FNG
: The name of the fngsystem image to build. If set to an empty string, related jobs are not created. -
CI_PARAM_DISTRO_FNG
: The name of the fngsystem distro to build
It uses a python script called generate_job_from_template.py
to convert the
build-jobs.jinja2
to build-jobs.yml
. This yml file is then used by the
'trigger-build-jobs' job, to setup the pipeline described by it.