1

In my gitlab-ci.yml I want to re-use conditions using variables.

So instead of this:

job1:
  script:
    - echo "job executed"
  rules:
    -  if: $CI_COMMIT_REF_SLUG =~ "example" || $MY_VAR == "value" && $CI_COMMIT_REF_SLUG =~ "test"

job2:
  variables:
    MY_VAR: value
  script:
    - echo "job executed"
  rules:
    - if: $CI_COMMIT_REF_SLUG =~ "example" || $MY_VAR == "value"

I can do this:

variables:
  EXAMPLE_CONDITION: $CI_COMMIT_REF_SLUG =~ "example" || $MY_VAR == "value"

job1:
  script:
    - echo "job executed"
  rules:
    - if: $EXAMPLE_CONDITION && $CI_COMMIT_REF_SLUG =~ "test"

job2:
  variables:
    MY_VAR: value
  script:
    - echo "job executed"
  rules:
    - if: $EXAMPLE_CONDITION

Unfortunately, this does not seem to work and the rules do not apply as expected.

Is there a way to put rules:if conditions into variables?

Theo
  • 2,262
  • 3
  • 23
  • 49
  • This seems like a use case for [YAML anchors](https://docs.gitlab.com/ee/ci/yaml/yaml_optimization.html#yaml-anchors-for-scripts) – Jeff Sep 01 '23 at 19:39

0 Answers0