我在 gitlab-CI 中运行 end2end 测试,请参阅https://docs.cypress.io/guides/guides/continuous-integration.html。
我在部署我的应用程序后运行它。
它运行良好,但我想更改基本 url,以便针对我的 prod 或我的暂存环境运行它。可以通过传递给测试的环境变量来实现。
我不想为每个环境编写测试作业,然后我想通过 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
Run Code Online (Sandbox Code Playgroud)
我希望http://mystaging.com或http://myprod.com$CI_ENVIRONMENT_URL
相等,具体取决于之前的部署作业是否已运行。但它是空的,似乎只在部署作业中可用。$CI_ENVIRONMENT_URL
是否可以将变量从工作传递到下一份工作?