问题
在GitHub上协作开发,写测试用例那是必须的,至于执行测试用例,
GitHub 的 MarketPlace 上有很多工具可以配合使用;使用 Travis 等工具我们可以很轻松的实现CI/CD(持续集成、持续部署);我们的问题是该怎么做呢?
了解Travis
Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 GitHub 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。
持续集成指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。确保符合预期以后,再将新代码"集成"到主干。
持续集成的好处在于,每次代码的小幅变更,就能看到运行结果,从而不断累积小的变更,而不是在开发周期结束时,一下子合并一大块代码。
Travis 作为 GitHub MarketPalce 上的一个产品,目前只支持 GitHub 仓库,私有和共有库都可以使用, 只是用私有库的时候需要在环境遍历中配置一个 Token, 这个Token 设置可以和下面设置 GitHub Token 、GIT_NAME 等一样。
作为要 CI/CD 的库,库里面需要包含用于 CI/CD 的命令。
Travis 可以执行多种语言的测试及构建。详情请点击这里
生命周期
- OPTIONAL Install apt addons
- OPTIONAL Install cache components
- before_install
- install
- before_script
- script
7.OPTIONAL before_cache (for cleaning up cache) - after_success or after_failure
- OPTIONAL before_deploy
- OPTIONAL deploy
- OPTIONAL after_deploy
- after_script
在构建时,生命周期可以组合使用。
配置.travis.yml
在项目根目录简历 .travis.yml 文件。配置如下
该文件名前有一英文点
language: node_js
node_js:
- "10"
branches:
only:
- dev
install:
- npm install -g yarn
- npm install -g codecov
- yarn
script:
- yarn testCoverage
after_success:
- codecov
- yarn build
env:
global:
- GH_REF: github.com/beef-noodles/PlatformWeb.git
after_script:
- cd ./build
- git init
- git config user.name "${GIT_NAME}"
- git config user.email "${GIT_EMAIL}"
- git add .
- git commit -m "Update docs"
- git push --force --quiet "https://${GITHUB_TOkEN}@${GH_REF}" master:master
将你的项目添加进Travis
进入Travis官网并用 GitHub 登录,在左侧选择加入仓库,
打开要CI/CD的库的选项按钮,点击settings, 进入设置,导航到环境变量中,输入要用到的环境变量,即可添加到环境变量列表
注意,一般情况下,环境变量都不显示,即 Display value in build log 这一项默认。
效果
在上面一切完成之后,在本地进行代码修改并提交,GitHub 会自动通知 Travis 进行自动化构建。如上完成代码自动化测试(CI),和自动化部署(CD)
构建日志太长,截一部分重要的吧。
注意里面的环境变量已经变成了[secure]