我们正在使用阶段来并行部署和运行我们各种不同的回归测试。是否有一种方法可以根据travis作业启动时可用的环境变量跳过阶段中的某些脚本。
我阅读了travis-ci文档和SO问题,这是我能想到的最好的方法。这是我们当前设置的摘要。
jobs:
include:
- stage: Setup
script:
- reset_db
- reset_es_index
name: Setting up Environment
if: type IN (push, api)
- stage: Tests
script:
- run_fast
name: Fast tests
if: type IN (push, api)
allow_failure: true
- script:
- run_api_tests
name: Api tests
if: type = api AND env(TRIGGER_REPO) != com_ui_project
- script:
- run_slow_tests
name: Slow tests
if: type = api AND env(TRIGGER_REPO) != com_ui_project
您可以看到,仅当travis作业由API调用触发且自定义环境变量不是{{1}时,我才想在Test阶段运行Api tests
和Slow tests
脚本}}。否则,请运行com_ui_project
脚本并跳过其他脚本。
现在,如果travis是由api调用触发的,则阶段Fast tests
中的所有脚本都将运行。我该如何避免呢?
我也尝试了以下方法
Tests
$TRIGGER_REPO != com_ui_project
env(TRIGGER_REPO) != "com_ui_project"
(认为使用shell格式化可能会有所帮助。没有帮助)