Hello everyone
I have a problem with access to variables defined in the job, in rules:if
.
In this example, the job don’t run on demo and staging.
rules-override-workflow-with-variables:
variables:
BRANCH_REGEX: '/staging|demo/'
variables:
script:
- echo "testing rules override workflow with variables"
rules:
- if: '$CI_COMMIT_BRANCH =~ $BRANCH_REGEX'
I should note that I can access global variables created per pipeline.
variables:
BRANCH_REGEX: '/staging|preprod|master|demo'
workflow:
rules:
- if: '$FORCE_GITLAB_CI'
- if: '$CI_MERGE_REQUEST_IID'
# REGEX IN VARIABLE
- if: '$CI_COMMIT_BRANCH =~ $BRANCH_REGEX'
rules-override-workflow-with-variables:
variables:
BRANCH_REGEX: '/staging|demo/'
variables:
script:
- echo "testing rules override workflow with variables"
rules:
- if: '$CI_COMMIT_BRANCH =~ $BRANCH_REGEX'
In this one, the job use the BRANCH_REGEX
defined at the global scope.
Also when I try with another global variable it works. Am I missing something
variables:
BRANCH_REGEX_LOCAL:'/staging|demo'
...
rules-override-workflow-with-variables:
rules:
- if: '$CI_COMMIT_BRANCH =~ $BRANCH_REGEX_LOCAL'
...
I read the docs and it doesn’t mention anything about rules not supporting job variables. Am I missing something, or rules:if
does not support job variables.
Thanks