gitlab-ci: rework pipeline to support on-demand bundle publishing


This works with !940 (merged) to help reduce the load on cloud storage services for CMB's usage. To that end it:

  • gates the upload portions of the CI bundle (or image) upload steps on the ENABLE_CI_BUNDLE_UPLOAD variable to be set in manual pipeline runs
  • selecting a specific project may be done with the ENABLE_PROJECTS variable to a comma-separated list of projects to run

Additionally, it reworks the rules for jobs to share a single block that all jobs can share but configure using CMB_CI_* variables on the jobs themselves. See .gitlab/rules.yml for documentation on the job variables that affect things. It also uses workflow:rules to help avoid extra work on master jobs.

Cc: @ryan.krattiger1 @brad.king @dcthomp

Merge request reports

Loading