Travis以分支after_success为条件

Eri*_*son 14 travis-ci

在我的travis脚本中,我有以下内容:

after_success:
- ember build --environment=production
- ember build --environment=staging --output-path=dist-staging
Run Code Online (Sandbox Code Playgroud)

在这两个构建之后,我根据当前的git分支有条件地将S3部署到适当的那个.

它可以工作,但如果我只构建我真正需要的那个,它会节省时间.基于分支构建的最简单方法是什么?

Lou*_*kad 30

使用此处使用的test命令.

after_success:
  - test $TRAVIS_BRANCH = "master" &&
    ember build
Run Code Online (Sandbox Code Playgroud)

所有travis env变量都可在此处获得.

  • 当Travis构建针对master的PR时,$ TRAVIS_BRANCH将设置为"master".所以为了确保这只是为master执行,你需要使用`test $ TRAVIS_BRANCH ="master"&& test $ TRAVIS_PULL_REQUEST ="false"&& ember build` (12认同)

Vea*_*rji 7

您可以after_success使用travis环境变量在其中执行shell脚本并检查当前分支:

#!/bin/sh

if [[ "$TRAVIS_BRANCH" != "master" ]]; then
  echo "We're not on the master branch."
  # analyze current branch and react accordingly
  exit 0
fi
Run Code Online (Sandbox Code Playgroud)

将脚本放在项目中的某个位置,并按以下方式使用它:

after_success:
- ./scripts/deploy_to_s3.sh
Run Code Online (Sandbox Code Playgroud)

您可能还有其他有用的travis变量,它们在此处列出。