Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成 构建,还能部署到服务器。
持续集成
持续集成(Continuous Integration)指的是,频繁地(一天多次)将代码集成到主干。
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。
它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
Travis CI
Travis CI 对 Github 上的开源项目提供免费服务,这要求必须有 Github 账号。 官网只支持开源项目,如果想要对私人项目使用,则需要使用https://travis-ci.com.
选择仓库
设置
选择好要进行持续集成的仓库之后,然后指定分支,在 里选择 , 因为要进行提交部署,所以要在 Github 里生成 并作为环境变 量填在 Travis 里。
设置
personal access token
生命周期
Travis 具有一个完整的生命周期,从开始到结束是下面的流程。
before_install:install 阶段之前执行
install: 用来指定安装脚本
before_script:script 阶段之前执行
script: 用来指定构建或测试脚本
after_failure 或 after_success:script 阶段失败(成功)时执行
[OPTIONAL] before_deploy:deploy 步骤之前执行
[OPTIONAL] deploy:
[OPTIONAL] after_deploy:deploy 步骤之后执行
after_script:script 阶段之后执行
运行流程
Travis 的运行流程很简单,任何项目都会经过两个阶段。
install 阶段:安装依赖
script 阶段:运行脚本
其中,如果不需要安装,即跳过安装阶段,就直接设为 。
Travis 每次运行,可能会返回四种状态。
passed:运行成功,所有步骤的退出码都是0
canceled:用户取消执行
errored:before_install、install、before_script有非零退出码,运行会立即停止
failed :script有非零状态码 ,会继续运行
一个 Hugo 的例子
下面的这个脚本实现的是每当想 继续 commit 时,travis 就会自动 的把 生成为网页文件并提交到 。
sudo: required
dist: trusty
git:
depth: false
matrix:
fast_finish: true
branches:
only:
- hugo-theme # 只有特定分支的推送才触发构建
env: # 设置环境变量
- HUGO_VERSION : 0.41
install: # 安装hugo
- cd $TRAVIS_BUILD_DIR #回到初始目录
- wget -O hugo.tar.gz https://github.com/gohugoio/hugo/releases/download/v$/hugo_$_Linux-64bit.tar.gz
- chmod a+x hugo
#after_install:
before_script:
- cd $TRAVIS_BUILD_DIR
script:
- cd exampleSite
- ../hugo version
- ../hugo --baseUrl="https://theme.quanyin.ml" -t Blog-theme
after_success:
- cd public
- git config --global user.name "Quanyin Tang"
- git init
- git add .
- git commit -m "Travis CI build"
- git branch gh-pages
- git checkout gh-pages
- git remote add origin https://$@github.com/qytang326/Blog-theme.git
- git push -f -u origin gh-pages
领取专属 10元无门槛券
私享最新 技术干货