【转载】持续集成服务Travis之github集成CI

软件开发中,编写代码只占很小的一部分,大部分时间是用来编译、测试和部署代码;为了提高软件开发的效率,出现了很多构建和测试的工具,Travis是众多工具中的一个,可以与github无缝集成实现构建、测试与部署。

持续集成(Continuous Integration)

持续集成是一种开发实践,项目组的开发成员经常将代码合并到共享代码仓库中,任何一次的代码合并都通过自动构建和自动化测试(非必须)进行代码合并的验证,确保每次合并都是正确的。简言之,代码仓库中的代码只要发生变化就触发构建和测试,来验证代码的变动并反馈构建结构。

持续集成的优点:

  • 对代码的变更进行及时的构建和验证,避免对大量的代码变动进行构建,加速bug检出和解决

Travis提供持续集成服务(Continuous Integration, CI),只需要绑定github账号及相关项目,即可在github中项目的代码发生变动时进行下载,然后创建构建环境,运行项目中配置的构建流程,实现构建、测试和部署。

Travis与github集成

前提条件:有github账号且账号下有项目

注意 如果是github的公共仓库,可使用travis-ci.org,如果是私有仓库,必须使用travis-ci.com

流程:

  • 使用github账号登陆travis官网
  • 点击头像旁的箭头,进入Settings
  • 在Repositories页签中点击Active,如果已经添加过仓库,则点击Manage repositories on GiHub
  • 第三步会自动跳转到github的Travis CI页面,进行项目的授权,可选择所有仓库或选择特定仓库,然后进行安装即可

部署流程

编写配置文件.travis.yml

在travis网站上配置好仓库之后,还需要在项目的主目录下创建.travis.yml配置文件,才会触发travis的持续集成;该配置文件指定持续集成时Travis的行为,一旦仓库有新的commit,Travis就会去主目录中找这个配置文件并执行里面的命令。

.travis.yml配置文件采用YAML格式,支持多种编程语言,可配置代码的构建环境等,具体的配置参考官方文档

travis.yml文件demo

1
2
3
4
5
6
7
8
9
10
11
language: node_js
node_js: 12
install:
- npm install
script:
- npm run build
- git add .
- git commit -m "build vulscn-web"
- git push origin develop
notifications:
email: owefsad@gmail.com

上面的配置设置了运行环境为nodejs,版本为12,构建前需要使用npm install安装依赖,然后执行4条构建语句,构建结束后发送通知邮件到owefsad@gmail.com

流程详解

  • 设置运行环境及对应的语言版本
  • 执行install配置块中指定的动作,安装项目需要的依赖,如果有多条安装依赖的指令,则向下补充即可;依赖安装过程中如果发生错误则构建终止;如果不需要安装依赖,则删除该配置块或设置为true
  • 依赖安装成功后,执行script中指定的构建指令;构建指令出错不影响下一条构建指令,但只要有一条构建指令出错,最终的构建结果为失败;如果需要指定指令间的逻辑与关系,可通过script: command1 && command2指定。

部署
script阶段执行结束之后,还可以设置通知部署,它们不是必须的,但是,在日常项目中,一般是需要的。本文以自定义脚本实现部署为例:

1
2
3
4
5
6
7
8
9
deploy:
- provider: script
script: deploy_production.sh
on:
branch: production
- provider: script
script: deploy_staging.sh
on:
branch: staging

上述配置,指定了两个部署动作,一个在分支production上执行deploy_producation.sh脚本,另一个在分支staging上执行deploy_staging.sh脚本

其他内容本文暂不记录,请参阅阮一峰-持续集成服务

进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。

owefsad wechat
进击的DevSecOps,持续分享SAST/IAST/RASP的技术原理及甲方落地实践。如果你对 SAST、IAST、RASP方向感兴趣,可以扫描下方二维码关注公众号,获得更及时的内容推送。
0%