Implement expand/raw logic for basic jobs
What does this MR do and why?
In previous works (!98420 (merged)), we added the YAML syntax for expand. Now, we start using it.
This MR implements the raw support for basic job variables.
Related to #353991 (closed)
Note: We did not update the docs and CI schema because there will be a couple of steps before releasing and the changes are behind the FF ci_raw_variables_in_yaml_config (#375034 (closed)).
Implementation table
| Step | Status |
|---|---|
| Add expand syntax to CI config | !98420 (merged) |
| Implement expand/raw logic for basic jobs | <- HERE |
| Add QA test for raw variables in CI config YAML | !103181 (merged) |
| Use expand/raw logic for variables passed by bridge/trigger | !103190 (merged) |
| Add documentation and CI schema for expand/raw | !103313 (merged) |
Screenshots or screen recordings
Enable the FF
Feature.enable(:ci_raw_variables_in_yaml_config)
Example complex config:
variables:
VAR7:
value: "value 7 $CI_PIPELINE_ID"
expand: false
VAR8:
value: "value 8 $CI_PIPELINE_ID"
expand: false
rspec:
script:
- echo $VAR1
- echo $VAR2
- echo $VAR3
- echo $VAR4
- echo $VAR5
- echo $VAR6
- echo $VAR7
- echo $VAR8
variables:
VAR1: "JOBID-$CI_JOB_ID"
VAR2: "PIPELINEID-$CI_PIPELINE_ID and $VAR1"
VAR3:
value: "PIPELINEID-$CI_PIPELINE_ID and $VAR1"
expand: false
VAR4:
value: "JOBID-$CI_JOB_ID"
expand: false
VAR5: "PIPELINEID-$CI_PIPELINE_ID and $VAR4"
VAR6:
value: "PIPELINEID-$CI_PIPELINE_ID and $VAR4"
expand: false
VAR7: "overridden value 7 $CI_PIPELINE_ID"
Result:
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Furkan Ayhan
