GitLab CI: экспорт переменной в задании сборки before_script - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь реализовать условное управление версиями в зависимости от того, выполняется сценарий CI для теговой ветви или нет. Однако версия var не разрешена. Вместо этого он печатается в виде строки.

Соответствующие задания скрипта GitLab CI:

# build template
.build_base_template: &build_base_template
  image: registry.gitlab.com/xxxxxxx/npm:latest
  tags:
    - docker
  stage: LintBuildTest
  script:
    - export CUR_VERSION='$(cat ./version.txt)$BUILD_VERSION_SUFFIX'
    - npm ci
    - npm run build
  artifacts:
    expire_in: 1 week
    paths:
      - dist/

# default build job
build:
  before_script:
    - export BUILD_VERSION_SUFFIX='-$CI_COMMIT_REF_SLUG-SNAPSHOT-$CI_COMMIT_SHORT_SHA'
  <<: *build_base_template
  except:
    refs:
      - tags
  only:
    variables:
      - $FEATURE_NAME == null

# specific build job for tagged versions
build_tag:
  before_script:
    - export BUILD_VERSION_SUFFIX=''
  <<: *build_base_template
  only:
    refs:
      - tags

1 Ответ

2 голосов
/ 08 июля 2019

в общем случае вы не можете экспортировать переменные из дочерних процессов в родительские.

В качестве обходного пути вы можете использовать текстовый файл для записи / чтения значения переменной.Также возможно передать переменную через шаблон yaml.

...