Как определить переменную окружения в средах url [Gitlab CI] - PullRequest
0 голосов
/ 10 июня 2019

Помогите, пожалуйста. У меня проблемы при использовании инструмента CI.

Вот мой .gitlab-ci.yaml

stages:
  - test

test:
  stage: test
  environment:
    name: test
    url: https://word.mymusise.com/env_test.txt
  script: echo "Running tests TEST=$TEST"

И я определил среду test в EnvDocker > Pipelines > Environments

Но он не экспортировал среду из https://word.mymusise.com/env_test.txt в задании CI.

Running with gitlab-runner 11.4.2 (cf91d5e1)
  on gitlab-ci runner a0e18516
Using Docker executor with image ubuntu:16.04 ...
Pulling docker image ubuntu:16.04 ...
Using docker image sha256:2a697363a8709093834e852b26bedb1d85b316c613120720fea9524f0e98e4a2 for ubuntu:16.04 ...
Running on runner-a0e18516-project-123-concurrent-0 via gitlab...
Fetching changes...
HEAD is now at d12c05b Update .gitlab-ci.yml
From https://gitlab.kingdomai.com/mymusise/envdocker
   d12c05b..1a3954f  master     -> origin/master
Checking out 1a3954f8 as master...
Skipping Git submodules setup
$ echo "Running tests TEST=$TEST"
Running tests TEST=
Job succeeded

Я определяю export TEST="test" в https://word.mymusise.com/env_test.txt, но, похоже, он не работает.

Что мне делать ... Orz

Gitlab версия: 11.4.0-ee

1 Ответ

1 голос
/ 11 июня 2019

Вы хотите запускать команды, которые находятся внутри текстового файла, доступного по протоколу http.

С помощью curl вы можете скачать файл и распечатать его на стандартном выходе curl. С подстановкой команды $() вы можете получить стандартный вывод. Затем вы можете выполнить команды самостоятельно (очень небезопасно, может быть несколько проблем с выходом из строя).

 script: 
   - $(curl "$url")
   - echo "Running tests TEST=$TEST"

Более безопасной альтернативой было бы просто загрузить файл и выполнить / запустить его.

 script: 
   - curl "$url" > ./run_this.sh
   # don't forget to add executable right to the file ;)
   - chmod +x ./run_this.sh
   - source ./run_this.sh
   # pick out the trash
   - rm ./run_this.sh
   # rest of your script.
   - echo "Running tests TEST=$TEST"

Загрузка сценария оболочки и его выполнение - популярный способ автоматизации задач, обычно с помощью curl url | bash. Это не поддерживается "изначально" gitlab, и я не думаю, что это должно быть.

...