Travis CI 配置文件 .travis.yml 的语法介绍和一些用法举例

简介: Travis CI 配置文件 .travis.yml 的语法介绍和一些用法举例

在 Github 项目文件夹下面添加 .travis.yml 文件。


为了运行构建,Travis CI 的系统将触发构建的存储库克隆到构建环境。 构建环境是一个隔离的虚拟机或 LXD 容器,一旦构建完成就会终止。 克隆仅在构建请求之后发生,因此仅适用于在 GitHub 设置中明确启用的存储库。


一个例子:

544abd7a173fbc18d18162eadefed0aa.png

为了设置构建环境并准备构建,Travis CI 的系统从存储库和构建请求中明确指定的分支中获取并处理 .travis.yml 配置文件,由 GitHub 触发。


这个 .travis.yml 配置文件的语法在官网可以找到。


比如,dist: bionic 的意思是,构建虚拟系统的类型,bionic 是其中一个枚举值。


Travis CI 支持 Linux 构建的两种虚拟化类型:“Full VM”和“LXD”。 最重要的是,Linux 构建可以在多个 CPU 架构上运行。


Full VM 是启用 sudo 的,每个构建的完整虚拟机,运行 Linux.


虽然启动缓慢(与 LXD 容器相比增加了构建时间)但没有任何限制。


它分配了固定数量的 vCPU 和 RAM。


而 LXD 环境,尽可能接近容器世界中的虚拟机。 Linux 环境在非特权 LXD 容器中运行。


和 Full VM 相比,其启动速度更快(与完整 VM 相比减少了构建时间)但确实存在一些限制。


它从最少 2 个 vCPU 开始,如果有更多的计算时间可用,主机可以动态分配它以加快构建速度。


又比如 branches 关键字和 only 的组合,下列例子的语义是,仅当 develop, epic, release, integration-libs 等 分支出现代码提交时才触发 Travis.


526cd3732a1a9558d37fc9e1dc6712d8.png


.travis.yml 是一个 YAML 格式的配置文件,下面是一些高级用法。


在更高级的用例中,为了减少大型构建配置文件中的重复,一个好的做法是使用 YAML 的机制来定义和重用共享配置部分作为 YAML 锚点和别名。


例如,不要像这样为两个不同的部署目标重复部署配置, 这是不好的实践:

deploy:
- provider: heroku
  api_key: ...
  app: app-production
  on:
    branch: master
- provider: heroku
  api_key: ...
  app: app-staging
  on:
    branch: staging

使用下列的语法,重用某块 yaml 定义:

deploy:
- &deploy
  provider: heroku
  api_key: ...
  app: app-production
  on:
    branch: master
- <<: *deploy
  app: app-staging
  on:
    branch: staging


相关文章
|
网络安全
Travis CI 自动化构建 Hexo 博客
前提条件: • 必须使用一个public的项目, 然后登陆https://travis-ci.org/ 进行关联. • 已存在一个hexo的可以跑起来的项目 在你的hexo源码项目, 取出master分支中 添加配置文件.travis.yml,并推送到acc8226.github.io项目中.
137 0
|
开发工具 git 持续交付
使用Travis CI自动部署Hexo到GitHub
原文链接(转载请注明出处):使用Travis CI自动部署Hexo到GitHub 前言 使用 hexo + gitPages 搭建个人博客的人都知道,每当要发表一篇博文,第一步得手动使用 hexo g 命令生成静态网页,然后还得通过 hexo d 命令将静态文件推送到GitHub远程仓库,不说麻烦不麻烦,更重要的是有时候环境换了,没有搭建 hexo 环境,想发篇博客的时候就没有可能了。
1627 0
|
3月前
CI/CD笔记.Gitlab系列:设置GitLab导入源
CI/CD笔记.Gitlab系列:设置GitLab导入源
203 2
|
3月前
|
数据采集 数据处理 持续交付
CI/CD笔记.Gitlab系列.`gitlab-ci.yml`中的头部关键字
CI/CD笔记.Gitlab系列.`gitlab-ci.yml`中的头部关键字
33 0
|
5月前
|
缓存 NoSQL JavaScript
从入门到精通:.gitlab-ci.yml文件的完整指南
从入门到精通:.gitlab-ci.yml文件的完整指南
603 2
|
6月前
|
Docker 容器
GitLab Runner注册大揭秘:高效CI/CD的入门指南
GitLab Runner注册大揭秘:高效CI/CD的入门指南
144 0
GitLab Runner注册大揭秘:高效CI/CD的入门指南
|
存储
gitlab--include 引入其他 ci 文件、extends 继成模板作业
gitlab--include 引入其他 ci 文件、extends 继成模板作业
gitlab--include 引入其他 ci 文件、extends 继成模板作业
|
存储 缓存 运维
Gitlab CI 小试牛刀
前言 前端工程化中 CI 是必不可少的一环,大家的团队中或多或少都有不同的 CI 能力,有的可能由运维同学使用 JIRA 配置(前司),更多的相信已经迁移到 Gitlab 到 CI/CD 中。那么今天就来聊聊什么是 CI 以及如何在 Gitlab 中配置 CI 能力。
|
jenkins Devops Java
jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)
jenkins快速入门,自动构建一个hello world项目(devops,ci/cd)