[TOC] > [阮一峰教程](http://www.ruanyifeng.com/blog/2017/12/travis_ci_tutorial.html) > [各语言的配置](https://docs.travis-ci.com/user/languages/go/) ## 文件配置 ### 简单的demo ``` language: python script: true // 表示不执行任何脚本,状态直接设为成功 ``` ### 详细配置 ``` language: python sudo: required before_install: sudo pip install foo script: py.test ``` ## 运行流程 ### 1.install 阶段 1. 该阶段用来安装脚本 `install: ./install-dependencies.sh ` 2. 安装多个脚本 ``` install: - command1 - command2 ``` >如果安装失败会立刻停止 4. 跳过安装 `install: true ` ### 2.script 阶段 1. 执行 `script: bundle exec thor build ` 2. 执行多个脚本 ``` script: - command1 - command2 ``` > 如果command1失败,command2会继续执行。但是,整个构建阶段的状态是失败。 > 如果执行执行就不执行 `script: command1 && command2 ` ## 实例:Node 项目 ``` language: node_js node_js: - "8" #指定版本 ``` Node 项目的install和script阶段都有默认脚本,可以省略 * `install`默认值:npm install * `script`默认值:npm test ### 部署 `script`阶段结束以后,还可以设置[通知步骤](https://docs.travis-ci.com/user/notifications/)(notification)和[部署步骤](https://docs.travis-ci.com/user/deployment/)(deployment) 要部署到[Github Pages](https://docs.travis-ci.com/user/deployment/pages/) ``` deploy: provider: pages skip_cleanup: true github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard on: branch: master ``` ## 钩子函数 * before\_install:install 阶段之前执行 * before\_script:script 阶段之前执行 * after\_failure:script 阶段失败时执行 * after\_success:script 阶段成功时执行 * before\_deploy:deploy 步骤之前执行 * after\_deploy:deploy 步骤之后执行 * after\_script:script 阶段之后执行 ## 运行状态 * passed:运行成功,所有步骤的退出码都是`0` * canceled:用户取消执行 * errored:`before_install`、`install`、`before_script`有非零退出码,运行会立即停止 * failed :`script`有非零状态码 ,会继续运行 ## 使用技巧 ### 环境变量 ``` env: - DB=postgres - SH=bash - PACKAGE_VERSION="1.0.*" ```