Travis CI 内联 Bash 脚本

spa*_*rkr 4 travis-ci

我有以下 Travis CI yml 文件片段:

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
Run Code Online (Sandbox Code Playgroud)

它有点工作,但我无法理解它产生的日志。这有点误导。这是来自构建服务器的日志:

[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.
Run Code Online (Sandbox Code Playgroud)

没有运行的东西怎么会以代码 0 退出?我宁愿期望它只是说,它跳过了那个脚本。你们有什么感想?

ren*_*tze 6

"if [ $TRAVIS_BRANCH == "master" ]; then sbt clean coverage test coverageReport docker:publishLocal; fi" 
Run Code Online (Sandbox Code Playgroud)

travis 使用它作为步骤的命令。即使没有执行 if 语句的 'true' 分支,travis 仍然成功执行了一个命令,因此exit 0. 如果您想要跳过配置的消息,您必须自己添加它们

  - if [ $TRAVIS_BRANCH == "master" ]; then
      sbt clean coverage test coverageReport docker:publishLocal;
    else
      echo "Skipped"
    fi
Run Code Online (Sandbox Code Playgroud)

此外,您的第二个检查可能不是您想要的。使用=~运算符启用正则表达式匹配,==只能使用全局模式匹配,AFAIK。