持续集成服务 Travis CI 教程

双色球走试图 2019-07-11 05:07106http://www.geo-hitch.com/admin

为了提高软件开发的效率,构建和测试的自动化工具层出不穷。Travis CI 就是这类工具之中,市场份额最大的一个。

持续集成服务  Travis CI 教程

本文介绍 Travis CI 的基本用法。用好这个工具不仅可以提高效率,还能使开发流程更可靠和专业化,从而提高软件的价值。而且,它对于开源项目是免费的,不花一分钱,就能帮你做掉很多事情。

一、什么是持续集成?

Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。

持续集成指的是只要代码有变更,就自动运行构建和测试,反馈运行结果。确保符合预期以后,再将新代码"集成"到主干。

持续集成的好处在于,每次代码的小幅变更,就能看到运行结果,从而不断累积小的变更,而不是在开发周期结束时,一下子合并一大块代码。

二、使用准备

Travis CI 只支持 Github,不支持其他代码托管服务。这意味着,你必须满足以下条件,才能使用 Travis CI。

拥有 GitHub 帐号

该帐号下面有一个项目

该项目里面有可运行的代码

该项目还包含构建或测试脚本

如果这些条件都没问题,就可以开始使用 Travis CI 了。

首先,访问官方网站 travis-ci.org,点击右上角的个人头像,使用 Github 账户登入 Travis CI。

Travis 会列出 Github 上面你的所有仓库,以及你所属于的组织。此时,选择你需要 Travis 帮你构建的仓库,打开仓库旁边的开关。一旦激活了一个仓库,Travis 会监听这个仓库的所有变化。

持续集成服务  Travis CI 教程

三、.travis.yml

Travis 要求项目的根目录下面,必须有一个.travis.yml文件。这是配置文件,指定了 Travis 的行为。该文件必须保存在 Github 仓库里面,一旦代码仓库有新的 Commit,Travis 就会去找这个文件,执行里面的命令。

这个文件采用 YAML 格式。下面是一个最简单的 Python 项目的.travis.yml文件。

language: python script: true

上面代码中,设置了两个字段。language字段指定了默认运行环境,这里设定使用 Python 环境。script字段指定要运行的脚本,script: true表示不执行任何脚本,状态直接设为成功。

Travis 默认提供的运行环境,请参考官方文档 。目前一共支持31种语言,以后还会不断增加。

下面是一个稍微复杂一点的.travis.yml。

language: python sudo: required before_install: sudo pip install foo script: py.test

上面代码中,设置了四个字段:运行环境是 Python,需要sudo权限,在安装依赖之前需要安装foo模块,然后执行脚本py.test。

四、运行流程

Travis 的运行流程很简单,任何项目都会经过两个阶段。

install 阶段:安装依赖

script 阶段:运行脚本

4.1 install 字段

install字段用来指定安装脚本。

install: ./install-dependencies.sh

如果有多个脚本,可以写成下面的形式。

install: - command1 - command2

上面代码中,如果command1失败了,整个构建就会停下来,不再往下进行。

如果不需要安装,即跳过安装阶段,就直接设为true。

install: true 4.2、script 字段

script字段用来指定构建或测试脚本。

script: bundle exec thor build

如果有多个脚本,可以写成下面的形式。

script: - command1 - command2

注意,script与install不一样,如果command1失败,command2会继续执行。但是,整个构建阶段的状态是失败。

如果command2只有在command1成功后才能执行,就要写成下面这样。

script: command1 && command2 4.3 实例:Node 项目

Node 项目的环境需要写成下面这样。

language: node_js node_js: - "8"

上面代码中,node_js字段用来指定 Node 版本。

Node 项目的install和script阶段都有默认脚本,可以省略。

install默认值:npm install

script默认值:npm test

更多设置请看。

4.4 部署

script阶段结束以后,还可以设置通知步骤(notification)和部署步骤(deployment),它们不是必须的。

部署的脚本可以在script阶段执行,也可以使用 Travis 为几十种常见服务提供的快捷部署功能。比如,要部署到 Github Pages,可以写成下面这样。

deploy: provider: pages skip_cleanup: true github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard on: branch: master

其他部署方式,请看官方文档。

4.5 钩子方法

Travis 为上面这些阶段提供了7个钩子。

before_install:install 阶段之前执行

before_script:script 阶段之前执行

after_failure:script 阶段失败时执行

after_success:script 阶段成功时执行

before_deploy:deploy 步骤之前执行

after_deploy:deploy 步骤之后执行

after_script:script 阶段之后执行

完整的生命周期,从开始到结束是下面的流程。

before_install

install

before_script

script

aftersuccess or afterfailure

[OPTIONAL] before_deploy

[OPTIONAL] deploy

[OPTIONAL] after_deploy

after_script

下面是一个before_install钩子的例子。

before_install: - sudo apt-get -qq update - sudo apt-get install -y libxml2-dev

博狗博彩网_双色球走试图:持续集成服务 Travis CI 教程

Copyright © 2002-2017 博狗博彩网_双色球走试图 版权所有 备案号:鄂ICP备12013455号-2 鄂公网安备61032703000317