2017-08-08 91 views
0

我有以下的特拉维斯CI YML文件片段:特拉维斯CI直列bash脚本

script: 
    - if [ $TRAVIS_BRANCH == "master" ]; then 
     sbt clean coverage test coverageReport docker:publishLocal; 
    fi 
    - if [ $TRAVIS_BRANCH == "/^develop-.*$/" ]; then 
     sbt clean coverage test coverageReport; 
    fi 

它有点工作,但我不明白的是它产生的日志。这是有点误导。以下是来自构建服务器的日志:

[success] Total time: 22 s, completed Aug 8, 2017 5:29:28 PM 

The command "if [ $TRAVIS_BRANCH == "master" ]; then sbt clean coverage test coverageReport docker:publishLocal; fi" exited with 0. 
0.00s 

$ if [ $TRAVIS_BRANCH == "/^develop-.*$/" ]; then sbt clean coverage test coverageReport; fi 

The command "if [ $TRAVIS_BRANCH == "/^develop-.*$/" ]; then sbt clean coverage test coverageReport; fi" exited with 0. 

如何运行任何不能退出的代码0?我宁可期望它只是说,它会跳过该脚本。你们有什么感想?

回答

1
"if [ $TRAVIS_BRANCH == "master" ]; then sbt clean coverage test coverageReport docker:publishLocal; fi" 

完整是travis用作该步骤的命令。即使if语句的'true'分支没有执行,travis仍然成功执行了一个命令,因此exit 0。如果你想跳过的配置信息,你就必须给他们自己

- if [ $TRAVIS_BRANCH == "master" ]; then 
     sbt clean coverage test coverageReport docker:publishLocal; 
    else 
     echo "Skipped" 
    fi 

添加另外,您的第二次检查是在也许不是做你想要什么。使用=~运算符启用正则表达式匹配,==可能只使用全局模式匹配AFAIK。