使用TravisCI进行持续集成
2019-05-20CI CD

持续集成(Continuous integration,简称CI)是一种软件开发实践。以每天小的代码改动集成替代在开发周期的末尾集成大量的代码,通过自动化的构建(包括编译,自动化测试,发布)来验证,从而尽快地发现和定位错误。让产品可以快速迭代,同时还能保持高质量。
持续集成往往和现代化的软件开发实践相结合,例如:Git工作流、敏捷开发、自动化测试、自动化部署等。
持续集成能够帮你:减少风险、减少重复过程、自动化生成可部署的软件、增强项目的可见性、建立团队对开发产品的信心。
这篇文章教你使用 Travis CI 自动化构建和发布你的软件产品。
<!--more-->准备
Travis CI可以使用Github的OAuth登录,赋予其必要的权限,我们就能使用Github开源代码库开启构建了。
需要注意的是:Travis CI目前有两个域名
travis-ci.org和travis-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包含两个主要部分:
install和script - 我这里指定了node版本为v8
install默认会执行npm install,在有yarn.lock的工程中会替代npm为yarnscript会在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.
以上,转载请注明出处!