Nested variables aren't expanded in rules:exists
Summary
!101639 (merged) introduced the ability to use variables in rules:exist, however, nested variables are not expanded. This lack of expansion results in situations where a pipeline/job will not be created.
Reported by customer in Zendesk ticket(internal)
Steps to reproduce
- Create a new project
- Create a folder named
deployment
- Create a file named
test.yml
under the above folder - Create .gitlab-ci.yml with this content
stages:
- build
variables:
TEST_FOLDER: deployment
TEST_FILE: test
TEST_PATH: $TEST_FOLDER/$TEST_FILE.yml
test-job1:
stage: build
script:
- echo $TEST_FOLDER
- echo $TEST_FILE
- echo $TEST_PATH
rules:
- exists:
- $TEST_FOLDER/$TEST_FILE.yml
test-job2:
stage: build
script:
- echo $TEST_FOLDER
- echo $TEST_FILE
- echo $TEST_PATH
rules:
- exists:
- $TEST_PATH
- Validate or run the pipeline
- Observe that the first job is created, however, the second job is not
Proposal
Tentative proposal being discussed below - Add sort_and_expand_all to depends_on
Example Project
https://gitlab.com/gitlab-gold/jiocastillo/ci-testing/variable-expansion
What is the current bug behavior?
Nested variables aren't expanded when used in rules:exist
What is the expected correct behavior?
Nested variables should be expanded when used in rules:exist
Relevant logs and/or screenshots
If the first job is removed, validating or running the pipeline results in:
Pipeline will not run for the selected trigger. The rules configuration prevented any jobs from being added to the pipeline.
Edited by Mark Nuzzo