Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gitlab 如何在部署作业之后在作业中获取环境URL?_Gitlab_Gitlab Ci - Fatal编程技术网

Gitlab 如何在部署作业之后在作业中获取环境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

我在gitlab CI中运行end2end测试,请参阅

我在部署应用程序后运行它

它工作得很好,但我想更改基本url,以便针对我的prod或staging env运行它。这可以通过传递给测试的环境变量实现

我不想为每个环境编写测试作业,然后我想通过env var获取环境URL,但是
$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`