Ubuntu 18.04 构建环境

Bionic LTS Standard 已被 Canonical 终止支持,请尝试更新到较新的镜像。它将在 Travis CI 中继续使用一段时间,但现在是时候考虑将您的构建迁移到较新的构建环境镜像了。

本指南涵盖的内容 #

本指南概述了 Bionic 环境中可用的包、工具和设置。

使用 Ubuntu 18.04 (Bionic Beaver) #

要将您的构建路由到 Ubuntu 18.04 LTS, Bionic,请将以下内容添加到您的 .travis.yml

dist: bionic

与之前发布的镜像相比的差异 #

Travis CI Ubuntu 18.04,Bionic,包含以下更改和改进

已删除第三方 apt 存储库 #

虽然在镜像配置过程中使用了第三方 apt 存储库,但它们都已从 Bionic 构建镜像中删除。这有两个好处:a) 减少了不相关干扰的风险,b) 加快了 apt-get 更新速度。

要指定第三方 apt 存储库,您可以 使用 apt 附加组件添加源 并指定包。例如

dist: bionic
addons:
  apt:
    sources:
      - ppa:chris-lea/redis-server
    packages:
    - redis-tools
    - redis-server

如果您在构建中依赖于这些存储库,您可以使用以下 source 行来恢复它们

couchdb https://couchdb.cn/repo/
docker docker
google-chrome-stable google-chrome
git-lfs github-git-lfs-bionic
git-ppa ppa:git-core/ppa
haskell ppa:hvr/ghc
mongodb mongodb-4.4-bionic
pollinate ppa:pollinate/ppa

默认情况下已禁用服务 #

在基于 Ubuntu 18.04 的环境中,为了加快启动时间并提高性能,我们默认情况下禁用了所有服务。将您要启动的任何服务添加到您的 .travis.yml

services:
  - mysql
  - redis

所有 Ubuntu 18.04 镜像共有的环境 #

所有 Ubuntu 18.04 构建上都存在以下版本的 Docker、版本控制软件和编译器,以及每个语言部分中更详细描述的更多特定于语言的软件。

所有预安装的软件(不包括发行版提供的软件)都是从官方发布版安装的 - 如果可用,则使用预构建的二进制文件,或者使用默认选项构建源代码发布版。对于预安装的语言解释器,如果语言可用,则使用标准版本管理器,例如 rvm

版本控制 #

版本
git 2.43.0
git-lfs 2.3.4
hg 5.3
svn 1.9.7

编译器和构建工具链 #

  • clang 和 llvm 16
  • cmake 3.26.3
  • gcc 7.5.0
  • ccache 3.4.1
  • shellcheck 0.10.0
  • shfmt 3.8.0

要在 Focal LXD 镜像的 ppc64le 架构下使用 IBM Advance Toolchain v14 编译器,请在您的 .travis.yml 中使用以下路径

  • GCC 编译器
    • 路径:/opt/at14.0/bin/gcc
    • 命令:/opt/at14.0/bin/gcc hello_world.c -o hello_world
  • g++ 编译器
    • 路径:/opt/at14.0/bin/g++
    • 命令:/opt/at14.0/bin/g++ hello_world.cpp -o hello_world
  • Go 编译器
    • 路径:/opt/at14.0/bin/gccgo
    • 命令:/opt/at14.0/bin/gccgo hello_world.go -o hello_world
  • Python
    • 首先,使用 python_interpreter.sh 脚本 编译 Python 3.8.0。
    • Python 解释器路径:/opt/python380-at14/python3.8
    • 构建 Python 命令:sudo sh python_interpreter.sh

要在 Focal LXD 镜像的 amd64 架构下使用 IBM Advance Toolchain v14 编译器,请在您的 .travis.yml 中使用以下路径

  • GCC 编译器
    • 路径:/opt/at14.0/bin/powerpc64le-linux-gnu-gcc
    • 命令:/opt/at14.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world
  • g++ 编译器
    • 路径:/opt/at14.0/bin/powerpc64le-linux-gnu-g++ 命令:/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world
  • Go 编译器
    • 路径:/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo
    • 命令:/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world
  • Python
    • 首先,使用 python_interpreter.sh 脚本 编译 Python 3.8.0。
    • Python 解释器路径:/opt/python380-amd64/python3.8
    • 构建 Python 命令:sudo sh python_interpreter.sh

Docker #

  • 已安装 Docker 24.0.2
  • docker-compose 2.18.1

Ruby 支持 #

  • 预安装的 Ruby:2.5.92.7.63.3.0
  • 默认的 ruby 是 3.3.0
  • 其他 ruby 版本可以在构建时安装。

Python 支持 #

  • 支持的 Python 版本:3.6 或更高版本。
  • 当没有显式设置语言版本时,将使用 Python 3.12.0
  • 以下 Python 版本已预安装
别名 版本
3.6 3.6.15
3.7 3.7.17
3.8 3.8.18
3.12 3.12.0

如果您收到关于 PyPy 的错误 pypy is not installed; attempting download,请使用较新的版本之一。

JavaScript 和 Node.js 支持 #

  • 对于指定 language: node_js 的构建,nvm 会在构建时自动更新到最新版本。对于其他构建,已选择镜像构建时的稳定版本,即 0.10.48。
  • 以下 NodeJS 版本已预安装:20.14.018.20.316.20.216.15.116.1512.22.1210.24.18.17.06.17.14.9.1

Go 支持 #

  • 预安装的 Go:1.18.1

  • 通过使用 go: 键指定语言版本,可以在构建时安装其他 Go 版本。

JVM (Clojure, Groovy, Java, Scala) 支持 #

  • 预安装的 JVM:x86 上的 openjdk8openjdk9opnejdk10openjdk11,默认值为 openjdk11

  • 如果可用,可以获取其他 JDK,包括 Oracle 的 JDK,方法是指定 jdk

  • 下表总结了预安装的 JVM 工具版本

版本
gradle 8.3
maven 3.9.4
groovy 4.0.15

Perl 支持 #

  • Bionic 上的默认版本是 5.33
  • 支持版本 5.325.33 可以使用 perl: 键安装。
  • TAP::Harness v3.38 和 cpanm (App::cpanminus) 版本 1.7044 也已预安装。

PHP 支持 #

  • 对于动态运行时选择,可以使用 phpenv
  • 以下 PHP 版本已预安装
别名 版本
7.1 7.1.33
7.2 7.2.27
7.3 7.3.14
7.4 7.4.2

扩展 #

PHP 7.1 及更高版本 #

以下扩展已预安装用于 PHP 7.1 及更高版本构建

请注意,这些扩展默认情况下未启用,xdebug 除外。

数据库和服务 #

以下服务和数据库已预安装,但默认情况下不运行。要将其中一个用于您的构建,请将其添加到 travis.yml 中的 services 键中。

服务 版本
mongodb 4.4.29
mysql 5.7.42
redis 7.2.5
postgresql 9.3 9.4 9.5 9.6 10 11

其他 Ubuntu Linux 构建环境 #

您可以查看 Ubuntu Linux 概述页面,了解您可以使用的不同 Ubuntu Linux 构建环境。