Gitlab 如何在部署作业之后在作业中获取环境URL?
我在gitlab CI中运行end2end测试,请参阅 我在部署应用程序后运行它 它工作得很好,但我想更改基本url,以便针对我的prod或staging env运行它。这可以通过传递给测试的环境变量实现 我不想为每个环境编写测试作业,然后我想通过env var获取环境URL,但是Gitlab 如何在部署作业之后在作业中获取环境URL?,gitlab,gitlab-ci,Gitlab,Gitlab Ci,我在gitlab CI中运行end2end测试,请参阅 我在部署应用程序后运行它 它工作得很好,但我想更改基本url,以便针对我的prod或staging env运行它。这可以通过传递给测试的环境变量实现 我不想为每个环境编写测试作业,然后我想通过env var获取环境URL,但是$CI_environment_URL仅在部署作业中可用,而不在下一个作业中可用 deploy-prod: stage: deploy script: - some commands environ
$CI_environment_URL
仅在部署作业中可用,而不在下一个作业中可用
deploy-prod:
stage: deploy
script:
- some commands
environment:
name: prod
url: http://myprod.com
only:
- master
deploy-staging:
stage: deploy
script:
- some other commands
environment:
name: staging
url: http://mystaging.com
only:
- staging
test:
stage: after-deploy
script:
- CYPRESS_baseUrl=$CI_ENVIRONMENT_URL cypress run
我希望$CI\u ENVIRONMENT\u URL
等于或取决于已运行的上一个部署作业。但它是空的,似乎$CI_ENVIRONMENT_URL
仅在部署作业中可用
是否可以将一个变量从一个作业传递到下一个作业?您可以使用以下功能:在文件中写入$CI\u ENVIRONMENT\u URL
:
echo $CI_ENVIRONMENT_URL > environmentUrl.txt
将其另存为工件,然后在下一个作业中读取:
$CI_ENVIRONMENT_URL=`cat environmentUrl.txt`