请帮助。使用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
环境
但是它没有从CI作业中的https://word.mymusise.com/env_test.txt
导出环境。
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
答案 0 :(得分:1)
您要运行可通过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不“本地”支持它,我认为不应该。