学习
实践
活动
专区
工具
TVP
写文章

借助 Travis CI 实现自动部署

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180706G0027E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券