Travis 的运行流程很简单,任何项目都会经过两个阶段(命令)。
- install 命令:安装依赖
- script 命令:运行脚本
install 命令
install命令用来指定安装脚本。
install: ./install-dependencies.sh
如果有多个脚本,可以写成下面的形式。
install: - command1 - command2
上面代码中,如果command1
失败了,整个构建就会停下来,不再往下进行。
如果不需要安装,即跳过安装阶段,就直接设为true
。
install: true
script 命令
script
字段用来指定构建或测试脚本。
script: bundle exec thor build
如果有多个脚本,可以写成下面的形式。
script: - command1 - command2
注意,script与install不一样,如果command1失败,command2会继续执行。但是,整个构建阶段的状态是失败。
如果command2只有在command1成功后才能执行,就要写成下面这样。
script: command1 && command2
Node 项目实例
Node 项目的环境需要写成下面这样。
language: node_js node_js: - "8"
上面代码中,node_js字段用来指定 Node 版本。
Node 项目的install和script阶段都有默认脚本,可以省略。
- install默认值:npm install
- script默认值:npm test
更多设置请看官方文档。
Travis 部署
script
阶段结束以后,还可以设置通知步骤(notification)和部署步骤(deployment),它们不是必须的。
部署的脚本可以在script
阶段执行,也可以使用 Travis 为几十种常见服务提供的快捷部署功能。比如,要部署到 Github Pages,可以写成下面这样。
deploy: provider: pages skip_cleanup: true github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard on: branch: master
其他部署方式,请看官方文档。
Travis 钩子方法
Travis 为上面这些阶段提供了7个钩子。
- before_install:install 阶段之前执行
- before_script:script 阶段之前执行
- after_failure:script 阶段失败时执行
- after_success:script 阶段成功时执行
- before_deploy:deploy 步骤之前执行
- after_deploy:deploy 步骤之后执行
- after_script:script 阶段之后执行
完整的生命周期,从开始到结束是下面的流程。
- before_install
- install
- before_script
- script
- aftersuccess or afterfailure
- [OPTIONAL] before_deploy
- [OPTIONAL] deploy
- [OPTIONAL] after_deploy
- after_script
下面是一个before_install钩子的例子。
before_install: - sudo apt-get -qq update - sudo apt-get install -y libxml2-dev
上面代码表示before_install
阶段要做两件事,第一件事是要更新依赖,第二件事是安装libxml2-dev
。用到的几个参数的含义如下:-qq
表示减少中间步骤的输出,-y
表示如果需要用户输入,总是输入yes
。
Travis 运行状态
最后,Travis 每次运行,可能会返回四种状态。
- passed:运行成功,所有步骤的退出码都是0
- canceled:用户取消执行
- errored:before_install、install、before_script有非零退出码,运行会立即停止
- failed :script有非零状态码 ,会继续运行
参考资料
- Auto-deploying built products to gh-pages with Travis
- SSH deploys with Travis CI
: » 持续集成(Travis CI)运行流程详解
原创文章,作者:jamestackk,如若转载,请注明出处:https://blog.ytso.com/252582.html