Travis CI 持续集成¶
Travis CI 是在线托管的持续集成服务,绑定Github项目,抓取新的代码自动进行测试构建,甚至自动部署到测试环境。 使用这项服务,每次我们提交新的代码,都能及时发现问题并修复。 基本步骤
- 访问官网 travis-ci.org, 用Github账户登陆。
-
Travis会列出你所有的Github库以及你所属的组织。我们选择需要建立 Travis CI 服务的项目,将项目旁边的开关打开。这样,Travis CI会监听该项目的变化,在每次push/pull request操作后执行测试脚本。
-
编写测试脚本。
-
在项目的根目录下新建.travis.yml配置文件,并提交到Github库中。
如果需要在Github库下的README.md中显示一个高大上的build-passing图标,可以进行如下配置:
在Travis CI中点击监听项目的Settings
点击头像旁边的build-passing图片,复制url至Github项目的README.md末尾,即可看到当前测试的状态。点击该图标可以跳转到 Travis 查看测试日志
.travis.yml文件¶
该文件采用yaml格式,存储了测试配置信息。 下面说明.travis.yml中的主要字段
- language 指定了默认的运行环境
- script 指定了需要运行的测试脚本
- sudo 指定是否需要root权限 如以下就是一个简单的python运行环境的配置文件
- install 指定安装脚本
- env 定义环境变量
- services 指定需要的服务 .travis.yml还提供了加密服务 第一种加密方式是通过在travis CI网页上在仓库设置页添加环境变量,可以用来加密信息。 第二种加密方式则更为安全,实用性更广。通过travis encrypt命令来加密信息或文件。 首先安装travis命令行客户端
language: python sudo: required python: - '3.5' services: - mysql install : - pip install -r requirements.txt script: - python manage.py test
登录travis CI$ apt install travis
进入本地项目的根目录,加密文件。$ travis login
注:--add操作会自动将加密环境变量写入.travis.yml。如果想要自己添加,则可不添加--add,命令行会打印出秘钥,$ travis encrypt-file test.txt --add
将秘钥手动添加到.travis.yml中的before_install字段中即可。- openssl aes-256-cbc -K $encrypted_741b9a365d8e_key -iv $encrypted_741b9a365d8e_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d
此外,在.travis.yml中还可以配置钩子方法,在执行script,install,deploy的前后做一些工作,提高灵活性。
整个测试配置的完整生命周期如下:
before_install
install
before_script
script
aftersuccess or afterfailure
[OPTIONAL] before_deploy
[OPTIONAL] deploy
[OPTIONAL] after_deploy
after_script
ref:¶
Last update: 2020-03-12 14:42:51