Commit 437fa9c1 authored by Adrian DC's avatar Adrian DC
Browse files

fix: resolve #220: avoid "VAR=$VAR_NAME" expand failures

parent 8efb5ae8
Loading
Loading
Loading
Loading
+3 −1
Changes for gitlabci_local/types/environment.py: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -17,7 +17,9 @@ class Environment:

        # Avoid nested variable
        if variable:
            result = regex_sub(r'(?<!\\)\${?' + f'{variable}' + r'}?', '', result)
            result = regex_sub(r'(?<!\\)\${' + f'{variable}' + '}', '', result)
            result = regex_sub(r'(?<!\\)\$' + f'{variable}' + r'([^A-Za-z_]+|$)', '\\1',
                               result)

        # Expand while needed
        while last != result:
+16 −0
Changes for tests/variables/.gitlab-ci.nested.yml: 16 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -16,6 +16,16 @@ variables:
  DOUBLE_NESTED_2_2: 'doublenested/variable/${NESTED_2_2}/value'
  UNKNOWN_1: ${UNKNOWN}
  DOUBLE_UNKNOWN_1: 'doubleunknown/variable/${UNKNOWN_1}/value'
  EXTENDED_1_NAME: extended_1
  EXTENDED_1: /${EXTENDED_1_NAME}_path
  EXTENDED_2_NAME: extended_2
  EXTENDED_2: /$EXTENDED_2_NAME/path
  EXTENDED_3_NAME: extended_3
  EXTENDED_3: /$EXTENDED_3_NAME
  EXTENDED_4_NAME: extended_4
  EXTENDED_4: /${EXTENDED_4}/path
  EXTENDED_5_NAME: extended_5
  EXTENDED_5: /$EXTENDED_5/path
  LOCATION: $(readlink -f "${LOCATION}")
  PWD: $(readlink -f "${PWD}")
  SELF_VALUE: ${SELF_VALUE}
@@ -42,6 +52,12 @@ variables:
    - env | grep '^UNKNOWN=' && false || true
    - env | grep '^UNKNOWN_1=' | grep '^UNKNOWN_1=$'
    - env | grep '^DOUBLE_UNKNOWN_1=' | grep -v '\$' | grep '//'
    - env | grep '^EXTENDED_[12345]=' | sort
    - env | grep '^EXTENDED_1=' | grep '^EXTENDED_1=/extended_1_path$'
    - env | grep '^EXTENDED_2=' | grep '^EXTENDED_2=/extended_2/path$'
    - env | grep '^EXTENDED_3=' | grep '^EXTENDED_3=/extended_3$'
    - env | grep '^EXTENDED_4=' | grep '^EXTENDED_4=//path$'
    - env | grep '^EXTENDED_5=' | grep '^EXTENDED_5=//path$'
    - env | grep '^LOCATION=' | grep '^LOCATION=$(readlink -f "")$'
    - env | grep '^PWD=' | grep -v '\$'
    - env | grep '^SELF_VALUE=' | grep '^SELF_VALUE=$'