travis-ci学习记录

本文最后更新于:2021/02/15 , 星期一 , 22:06

名词解释大部分均为机器直翻,部分稍加个人理解

名词解释

  • job:一个自动化的过程,克隆存储库到一个虚拟环境,然后执行一系列的phases,如编译代码,运行测试等。如果script阶段的返回代码非零,则作业失败。
  • phase:job的连续步骤。例如,install阶段在script阶段之前,script阶段在可选的deploy阶段之前。
  • build:按顺序运行的一组job。例如,一个build可能有两个job,每个job用不同版本的编程语言测试一个项目。当所有的job都完成时,build就结束了。
  • stage:build stages是对job进行分组的一种方法,并且在每个stage中并行运行job,但是要按顺序运行stage

生命周期

  1. apt addons - 可选,用来添加apt源、apt包等
  2. cache component - 可选,用来设置缓存不经常更改的东西,加快构建速度
  3. before_install - 在install之前
  4. install - 安装需要的依赖,可以指定自己的脚本来安装依赖,否则取决于语言
  5. before_script - 在script之前
  6. script - 运行构建脚本
  7. before_cache - 可选,当切仅当缓存生效时
  8. after_successafter_failure - 当构建成功/失败后,结果保存在TRAVIS_TEST_RESULT环境变量中。
  9. before_deploy - 可选,当且仅当部署处于活动状态
  10. deploy - 可选,部署
  11. after_deploy - 可选,当且仅当部署处于活动状态
  12. after_script - 在script之后

中断构建

  • 如果befor_installinstallbefore_script返回一个非0的退出码,则构建出错并且立即退出。
  • 如果script返回非零退出码,则构建失败,但在被标记为失败之前继续运行。
  • after _ successafter _ failureafter _ scriptafter _ deploy 和后续阶段的退出代码不影响构建结果。但是,如果其中一个阶段超时,构建将被标记为失败。

实践遇到的问题记录

按照发布npm配置一个最简单的npm发布。

在配置中并未配置test阶段,但是travisCI会默认在执行完 npm installinstall阶段后执行 npm run test。一开始我在 package.json配置的 "test": "npm run test is running!",。看travis中的日志发现一直死循环在执行 npm run test ,原来这个在里面会转换成相应的命令,想输出配置信息应该 "test": "echo \" ci run success \""