Travis CI 教程
最后更新于:2022-04-02 02:59:21
[TOC]
> [阮一峰教程](http://www.ruanyifeng.com/blog/2017/12/travis_ci_tutorial.html)
> [各语言的配置](https://docs.travis-ci.com/user/languages/go/)
## 概述
Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目
## 文件配置
### 简单的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.*"
```
';