使用TravisCI进行持续集成

2019-05-20CI CD
TravisCI
TravisCI

持续集成(Continuous integration,简称CI)是一种软件开发实践。以每天小的代码改动集成替代在开发周期的末尾集成大量的代码,通过自动化的构建(包括编译,自动化测试,发布)来验证,从而尽快地发现和定位错误。让产品可以快速迭代,同时还能保持高质量。

持续集成往往和现代化的软件开发实践相结合,例如:Git工作流、敏捷开发、自动化测试、自动化部署等。

持续集成能够帮你:减少风险、减少重复过程、自动化生成可部署的软件、增强项目的可见性、建立团队对开发产品的信心。

这篇文章教你使用 Travis CI 自动化构建和发布你的软件产品。

<!--more-->

准备

Travis CI可以使用Github的OAuth登录,赋予其必要的权限,我们就能使用Github开源代码库开启构建了。

需要注意的是:Travis CI目前有两个域名travis-ci.orgtravis-ci.com,推荐使用com,官方已经将.org合并到.com了。

配置

Travis CI通过读取项目根目录的.travis.yml文件获取配置信息,所以需要在工程目录下配置.travis.yml

# safelist
branches:
  only:
  - master
language: node_js
node_js:
  - "8"
script: ./node_modules/.bin/hexo clean && ./node_modules/.bin/hexo generate
deploy:
  # deploy to github pages
  - provider: pages
    skip_cleanup: true
    target_branch: master
    github_token: $GITHUB_TOKEN  # Set in the settings page of your repository, as a secure variable
    repo: wangyucode/wangyucode.github.io
    local_dir: public
after_deploy:
  - node deploy/sftp.js $SERVER_PASSWORD
  • branches可以配置需要构建的黑白名单,我这里设置了白名单,只构建master分支
  • 语言环境选择nodejs
  • 一个Job包含两个主要部分:installscript
  • 我这里指定了node版本为v8
  • install默认会执行npm install,在有yarn.lock的工程中会替代npmyarn
  • script会在install完成后执行
  • deploy中我部署了github pages,skip_cleanup表示跳过cleanup因为部署时我不需要清理任何文件,target_branch指定了要提交的分支,github_token因为比较敏感,所以作为变量配置在Repository Settings中,repo配置了要提交的仓库,local_dir表示只会部署public中的文件
  • after_deploy在部署完成之后我还会将文件部署到我的linux服务器,这里用了sftp-sync-deploy开源库

部署

push代码后即可触发集成,在Travis Dashboard可以看到如下log,说明构建及部署都成功了!

Worker information
Build system information
docker stop/waiting
resolvconf stop/waiting
$ git clone --depth=50 --branch=master https://github.com/wangyucode/wycode.cn.git wangyucode/wycode.cn

...

Logged in as @wangyucode (王郁)
cd /tmp/d20190520-5677-1oocet1/work
Preparing deploy
Deploying application
$ node deploy/sftp.js $SERVER_PASSWORD

Done. Your build exited with 0.

以上,转载请注明出处!

评论区

暂无评论