可信构建环境
Trusty 已被 Canonical 停止支持,请尝试更新到较新的镜像。Travis CI 对 Trusty 镜像的更新工作将在 2024 年年底结束,我们认为它已过时。您可以将我们的 Trusty 到 Xenial 迁移指南 作为更新的过渡步骤,但请注意 Xenial LTS 也已停止支持。强烈建议使用更新的镜像。
本指南涵盖的内容 #
本指南概述了 Trusty 环境中可用的软件包、工具和设置。
使用 Trusty #
要使用 Ubuntu Trusty,请将以下内容添加到您的 .travis.yml
文件中。
dist: trusty
如果您想了解更多关于使用 Trusty 的优缺点和当前状态的信息,请继续阅读。
Travis CI 在一个隔离的 Google Compute Engine 虚拟机中运行每个构建,为每个构建提供一个原始的构建环境。
构建可以访问各种用于数据存储和消息传递的服务,并且可以安装运行所需的任何内容。
Linux 基础设施 #
Travis CI 在一个隔离的 Google Compute Engine 虚拟机中运行每个构建,为每个构建提供一个原始的构建环境。
这样做的优点是构建之间不会保留任何状态,提供了一个干净的环境,并确保您的测试在一个从头开始构建的环境中运行。
您的构建会自动路由到此基础设施,您无需对 .travis.yml
进行任何修改。
基于容器的基础设施 #
基于容器的基础设施已被完全 弃用。请删除
.travis.yml
文件中的任何sudo: false
键,以使用完全虚拟化的 Linux 基础设施。
与 Precise 的镜像差异 #
在基于 Precise 的环境中,我们传统上构建了一个基于常见语言运行时(如 ruby
、go
、php
、python
等)的镜像库。
对于基于 Trusty 的环境,我们正在创建一组较小的镜像,其中包括
所有 Trusty 镜像共有的环境 #
版本控制 #
所有虚拟机镜像都预装了以下内容:
- Git 2.x
- Mercurial
- Subversion(官方 Ubuntu 软件包)
编译器和构建工具链 #
已安装 build-essential
元软件包,以及以下现代版本:
- GCC
- Clang
- make
- autotools
- cmake
- scons
网络工具 #
- curl
- wget
- OpenSSL
- rsync
Docker #
Docker 作为服务安装。我们使用官方的 Docker apt 代码库,因此您可以根据需要轻松地使用 apt
安装其他版本。
docker-compose 也已安装。
有关更多详细信息,请参阅我们的 在构建中使用 Docker 部分。
Ruby 镜像 #
rvm 已安装,我们预安装了至少两个最新的次要版本。这些是当前预安装的 Ruby 版本
2.2.7
2.3.4
2.4.1
其他版本会在运行时从本地缓存动态安装。
Python 镜像 #
我们在 2.x
和 3.x
系列中预安装了至少两个最新的 CPython 版本,例如 2.7.13
和 3.6.1
,以及至少一个版本的 PyPy。任何未预安装的版本都将在运行时从本地缓存动态安装。
pyenv 也已安装。
默认 Python 版本 #
如果您在 .travis.yml
中省略了 python
键,Travis CI 将使用 Python 2.7。
预安装的 pip 软件包 #
Travis CI 在每个虚拟环境中默认安装以下软件包:
- nose
- pytest
- wheel
- mock
- six
在所有 Python 版本(pypy 和 pypy3 除外)上,numpy
也可用。
JavaScript 和 Node.js 镜像 #
nvm 已安装,我们预安装了至少两个最新的次要版本,例如 6.9.4
和 7.4.0
。
您可以指定其他版本,这些版本将使用 nvm
动态安装。
Go 镜像 #
gimme 已安装,我们预安装了至少两个最新的次要版本,例如 1.7.3
和 1.8.3
。任何未预安装的版本都将由 gimme
动态安装。
JVM(Clojure、Groovy、Java、Scala)镜像 #
- 我们从官方 Ubuntu Trusty 软件包中安装最新的 OpenJDK 版本
- Open JDK 7 (
openjdk7
) - Open JDK 8 (
openjdk8
) - 未安装 OpenJDK 6。要使用 OpenJDK 6,请安装
openjdk-6-jdk
软件包。例如,使用apt
附加组件addons: apt: packages: - openjdk-6-jdk jdk: openjdk6
- Open JDK 7 (
- 我们从 Oracle 安装最新的 Oracle JDK 版本
- Oracle JDK 8 (
oraclejdk8
)。默认。 - Oracle JDK 9 (
oraclejdk9
) - 未提供 Oracle JDK 7,因为它已于 2015 年 4 月停止支持。
- 未提供 Oracle JDK 10,因为它已于 2018 年 10 月停止支持。
- Oracle JDK 11 (
oraclejdk11
)
- Oracle JDK 8 (
- 如果您需要其他 JDK 版本,则会安装jdk_switcher。
当您为 JVM 镜像选择 jdk
值时,$JAVA_HOME
将被正确设置。
Gradle 版本 #
Gradle 4.0。
Maven 版本 #
默认的 Apache Maven 3.5.x,配置为使用 Central 和 Sonatype 镜像。
Ant 版本 #
Ant 1.9.3。
Leiningen 版本 #
Leiningen 2.7.1。
SBT 版本 #
由于功能强大的 sbt-extras 替代方案,Travis CI 可以提供任何版本的 Simple Build Tool(sbt 或 SBT)。sbt
可以动态检测并安装您的 Scala 项目所需的 sbt 版本。
Perl 镜像 #
Perl 版本通过 Perlbrew 安装。Perl 的默认版本是 5.14。
支持线程的 Perl 运行时 #
某些 Perl 已编译为支持线程。它们已使用额外的编译标志 -Duseshrplib
和 -Duseithreads
编译。
5.26-shrplib
5.24-shrplib
5.22-shrplib
5.20-shrplib
5.18-shrplib
预安装模块 #
cpanm (App::cpanminus)
Dist::Zilla
Dist::Zilla::Plugin::Bootstrap::lib
ExtUtils::MakeMaker
LWP
Module::Install
Moose
Test::Exception
Test::Kwalitee
Test::Most
Test::Pod
Test::Pod::Coverage
PHP 镜像 #
phpenv 已安装,我们预安装了至少两个最新的点版本,例如 7.0.7
和 5.6.24
,以及 5.5.9
(Ubuntu 14.04 LTS 默认附带的版本)。任何未预安装的版本都将从本地缓存中动态安装,或者如果不可用,则通过 phpenv
构建。
注意:我们不支持 Trusty 上的 PHP 5.2.x 和 5.3.x 版本。指定这些版本将导致构建失败。如果您需要使用这些版本进行测试,请使用 Precise。
language: php
jobs:
include:
- php: 5.2
dist: precise
- php: 5.3
dist: precise
HHVM #
hhvm 也可用。并且按需安装 nightly 版本(作为 hhvm-nightly
)。
language: php
dist: trusty
php:
- hhvm-3.3
- hhvm-3.6
- hhvm-3.9
- hhvm-3.12
- hhvm-3.15
- hhvm-3.18
- hhvm-nightly
扩展 #
PHP 7.0 #
以下扩展程序已为 PHP 7.0 和 nightly 版本预安装
请注意,除了 xdebug 之外,这些扩展默认情况下未启用。
PHP 5.6 及以下版本 #
对于 PHP 5.6 及以下版本,以下扩展可用
- apc.so(5.5 或 5.6 不可用)
- memcache.so 或 memcached.so
- mongo.so
- amqp.so
- zmq.so
- xdebug.so
- redis.so
请注意,除了 xdebug 之外,这些扩展默认情况下未启用。
其他软件 #
使用 apt-get
安装其他 Ubuntu 软件包,或添加第三方 PPA 或自定义脚本。有关更多详细信息,请参阅有关 安装依赖项 的文档。
数据库和服务 #
我们预安装了以下服务,这些服务可以使用内置的 服务 支持激活。
- Apache Cassandra
- CouchDB
- ElasticSearch
- MongoDB
- MySQL
- Neo4j
- PostgreSQL
- RabbitMQ
- Redis
- Riak
- SQLite
Firefox #
Firefox 默认安装。
如果您需要特定版本的 Firefox,请使用 Firefox 插件在构建的 before_install
阶段安装它。
例如,要安装 50.0 版,请将以下内容添加到您的 .travis.yml
文件中
addons:
firefox: "50.0"
无头浏览器测试工具 #
环境变量 #
每个构建环境中都提供了一个 默认环境变量列表。
apt 配置 #
apt 配置为不需要确认(默认情况下假定 -y 开关),同时使用 DEBIAN_FRONTEND
环境变量和 apt 配置文件。这意味着 apt-get install -qq
可以不用 -y 标志。
组成员资格 #
执行构建的用户($USER
)属于从该用户派生的一个主组。
如果您需要修改组成员资格,请按照以下步骤操作
-
设置环境。这可以在构建生命周期的任何时间在构建脚本执行之前完成。
- 设置并导出环境变量。
- 将
$USER
添加到所需的辅助组:sudo usermod -a -G SECONDARY_GROUP_1,SECONDARY_GROUP_2 $USER
您可以使用-g
修改用户的初始组。
-
您的
script
将如下所示
script: sudo -E su $USER -c 'COMMAND1; COMMAND2; COMMAND3'
这会将环境变量传递到以 $USER
身份运行的 bash
进程中,同时保留上面在 usermod
中定义的环境变量和属于辅助组的环境变量。
构建系统信息 #
在构建日志中,“构建系统信息”部分显示了相关软件版本(包括可用的语言版本)。
其他 Ubuntu Linux 构建环境 #
您可以查看 Ubuntu Linux 概述页面,了解您可以使用的不同 Ubuntu Linux 构建环境。