Skip to content

Commit 32f0d04

Browse files
Update Ubuntu 20.04 Build Environment docs
1 parent a0cf5af commit 32f0d04

File tree

1 file changed

+75
-109
lines changed

1 file changed

+75
-109
lines changed

user/reference/focal.md

Lines changed: 75 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
```markdown
12
---
23
title: The Ubuntu 20.04 (Focal Fossa) Build Environment
34
layout: en
@@ -16,177 +17,126 @@ dist: focal
1617
```
1718
{: data-file=".travis.yml"}
1819

19-
20-
## Differences from the previous release images
21-
22-
Travis CI Ubuntu 20.04, Focal, includes the following changes and improvements:
23-
24-
### Third party apt-repositories removed
25-
26-
While third party apt-repositories are used during the image provisioning, they are all removed from the build image. This has two benefits; a) reduced risk of unrelated interference and b) faster apt-get updates.
27-
28-
To specify a third party apt-repository, you can [add the source with the apt addon](/user/installing-dependencies/#adding-apt-sources) and specify the packages. For example:
29-
30-
```yaml
31-
dist: focal
32-
addons:
33-
apt:
34-
sources:
35-
- sourceline: 'git-core/ppa'
36-
packages:
37-
- git-ppa
38-
```
39-
{: data-file=".travis.yml"}
40-
41-
If you depend on these repositories in your build, you can use the following `source` line to get them back:
42-
43-
| package | source |
44-
|:---------------------|:-----------------------------|
45-
| couchdb | `deb https://apache.bintray.com/couchdb-deb $(lsb_release -cs) main` |
46-
| docker | `deb https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable` |
47-
| google-chrome-stable | `deb http://dl.google.com/linux/chrome/deb/ stable main` |
48-
| git-ppa | `ppa:git-core/ppa` |
49-
| haskell | `ppa:hvr/ghc` |
50-
| mongodb | `deb https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/4.4 multiverse` |
51-
{: style="width: 80%" }
52-
53-
### Services disabled by default
54-
55-
On the Ubuntu 20.04 based environment, to speed up boot time and improve performance we've disabled all services by default.
56-
Add any services that you want to start to your `.travis.yml`:
57-
58-
59-
```yaml
60-
services:
61-
- mysql
62-
- redis
63-
```
64-
{: data-file=".travis.yml"}
65-
6620
## Environment common to all Ubuntu 20.04 images
6721

6822
The following versions of Docker, version control software and compilers are present on all Ubuntu 20.04 builds, along with more language specific software described in more detail in each language section.
6923

70-
All preinstalled software not provided by distro is installed from an official release --
71-
either a prebuilt binary if available, or a source release built with default options.
24+
All preinstalled software not provided by the distro is installed from an official release — either a prebuilt binary if available, or a source release built with default options.
7225
For preinstalled language interpreters, a standard version manager like `rvm` is used if available for the language.
7326

74-
### Version control
27+
### Version Control
7528

76-
| package | version |
77-
|:--------|:---------|
78-
| git | `2.45.2` |
79-
| git-lfs | `2.9.2` |
80-
| hg | `6.5.2` |
81-
| svn | `1.13.0` |
29+
| package | version |
30+
|:---------|:----------|
31+
| git | `2.48.1` |
32+
| git-lfs | `2.9.2` |
33+
| hg | `6.5.2` |
34+
| svn | `1.13.0` |
8235
{: style="width: 30%" }
8336

84-
### Compilers and Build toolchain
37+
### Compilers and Build Toolchain
8538

86-
| package | version |
87-
|:--------|:---------|
88-
| clang | `16.0.0` |
89-
| llvm | `18.0.0` |
90-
| cmake | `3.29.0` |
91-
| gcc | `9.4.0` |
92-
| ccache | `3.7.7` |
93-
| shellcheck | `0.10.0` |
94-
| shfmt | `3.8.0` |
39+
| package | version |
40+
|:-------------|:----------|
41+
| clang | `18.1.8` |
42+
| cmake | `3.29.0` |
43+
| gcc | `9.4.0` |
44+
| ccache | `3.7.7` |
45+
| shellcheck | `0.10.0` |
46+
| shfmt | `3.8.0` |
9547
{: style="width: 30%" }
9648

9749
To use the IBM Advance Toolchain v14 compilers under `ppc64le` architecture in Focal LXD image, use the following paths in your `.travis.yml`:
9850

99-
- GCC compiler
51+
- **GCC compiler**
10052
- Path: `/opt/at14.0/bin/gcc`
10153
- Command: `/opt/at14.0/bin/gcc hello_world.c -o hello_world`
10254

103-
- g++ compiler
55+
- **g++ compiler**
10456
- Path: `/opt/at14.0/bin/g++`
10557
- Command: `/opt/at14.0/bin/g++ hello_world.cpp -o hello_world`
10658

107-
- Go compiler
59+
- **Go compiler**
10860
- Path: `/opt/at14.0/bin/gccgo`
10961
- Command: `/opt/at14.0/bin/gccgo hello_world.go -o hello_world`
11062

111-
- Python
112-
- First, compile Python 3.8.0 using the `python_interpreter.sh script`.
63+
- **Python**
64+
- First, compile Python 3.8.0 using the `python_interpreter.sh` script.
11365
- Python Interpreter Path: `/opt/python380-at14/python3.8`
11466
- Build Python Command: `sudo sh python_interpreter.sh`
11567

11668
To use the IBM Advance Toolchain v14 compilers under `amd64` architecture in Focal LXD image, use the following paths in your `.travis.yml`:
11769

118-
- GCC compiler
70+
- **GCC compiler**
11971
- Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc`
12072
- Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gcc hello_world.c -o hello_world`
12173

122-
- g++ compiler
74+
- **g++ compiler**
12375
- Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++`
124-
Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world`
76+
- Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-g++ hello_world.cpp -o hello_world`
12577

126-
- Go compiler
78+
- **Go compiler**
12779
- Path: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo`
12880
- Command: `/opt/at14.0/bin/powerpc64le-linux-gnu-gccgo hello_world.go -o hello_world`
12981

130-
- Python
131-
- First, compile Python 3.8.0 using the `python_interpreter.sh script`.
82+
- **Python**
83+
- First, compile Python 3.8.0 using the `python_interpreter.sh` script.
13284
- Python Interpreter Path: `/opt/python380-amd64/python3.8`
13385
- Build Python Command: `sudo sh python_interpreter.sh`
13486

13587
### Docker
13688

137-
* Docker `26.1.4` is installed.
138-
* docker-compose `2.27.1` is also available.
89+
* Docker `28.0.1` is installed.
90+
* docker-compose `v2.27.1` is also available.
13991

14092
## Ruby support
14193

142-
* Pre-installed Rubies: `2.5.9`, `2.7.6` and `3.3.0`.
143-
* The default ruby is `3.3.0`.
94+
* Pre-installed Rubies: `2.5.9`, `2.7.6` and `3.3.5`.
95+
* The default ruby is `3.3.5`.
14496
* Other ruby versions can be installed during build time.
14597

14698
## Python support
14799

148-
* Supported Python version is: `3.7` or higher as `2.7` has been sunsetted.
100+
* Supported Python version is: `3.7` or higher as `2.7` has been sunset.
149101
* Python `3.7.17` will be used by default when no language version is explicitly set.
150102
* The following Python versions are preinstalled:
151103

152-
| alias | version |
153-
| :----- | :------- |
154-
| `3.6` | `3.7.17` |
155-
| `3.8` | `3.8.18` |
156-
| `3.9` | `3.9.18` |
157-
| `3.12` | `3.12.0` |
104+
| alias | version |
105+
| :----- | :-------- |
106+
| `3.7` | `3.7.17` |
107+
| `3.8` | `3.8.10` |
108+
| `3.9` | `3.9.18` |
109+
| `3.12` | `3.12.4` |
158110
{: style="width: 30%" }
159111

160112
## JavaScript and Node.js support
161113

162-
* For builds specifying `language: node_js`, `nvm` is automatically updated to the latest version at build time. For other builds, the stable version at image build time has been selected, which is `0.39.7`.
114+
* For builds specifying `language: node_js`, `nvm` is automatically updated to the latest version at build time. For other builds, the stable version at image build time has been selected.
163115
* The following NodeJS versions are preinstalled: `4.9.1`, `6.17.1`, `8.17.0`, `10.24.1`, `12.22.12`, `14.21.3`, `16.15`, `16.20.2`, `18.20.3` and `20.14.0`.
164116

165117
## Go support
166118

167119
* Pre-installed Go: `1.11.1`.
168120

169-
* Other Go versions can be installed during build time by specifying the language versions with the `go:`-key.
121+
* Other Go versions can be installed during build time by specifying the language versions with the `go:` key.
170122

171123
## JVM (Clojure, Groovy, Java, Scala) support
172124

173125
* Pre-installed JVMs: `openjdk8`, `openjdk9`, `openjdk10`, and `openjdk11` on x86, default is `openjdk11`.
174-
175126
* Other JDKs, including Oracle's, can be acquired if available by specifying `jdk`.
127+
* The following table summarizes the pre-installed JVM tooling versions:
176128

177-
* The following table summarizes the Pre-installed JVM tooling versions:
178-
179-
| package | version |
180-
|:--------|:--------|
181-
| gradle | `8.3` |
182-
| maven | `3.9.4` |
183-
| groovy | `3.0.17` |
129+
| package | version |
130+
|:--------|:---------|
131+
| gradle | `8.3` |
132+
| maven | `3.9.4` |
133+
| groovy | `4.0.15` |
184134
{: style="width: 30%" }
185135

186136
## Perl support
187137

188138
* Default version on Focal is `5.32.0`
189-
* Supported versions `5.32` and `5.33` can be installed by using the `perl:`-key.
139+
* Supported versions `5.32` and `5.33` can be installed by using the `perl:` key.
190140
* `TAP::Harness` v3.42 and `cpanm` (App::cpanminus) version 1.7044 are also pre-installed.
191141

192142
## PHP support
@@ -196,22 +146,38 @@ To use the IBM Advance Toolchain v14 compilers under `amd64` architecture in Foc
196146

197147
| alias | version |
198148
| :----- | :------- |
199-
| `7.4` | `7.4.6` |
149+
| `7.4` | `7.4.6` |
200150
{: style="width: 30%" }
201151

202152
## Databases and services
203153

204-
The following services and databases are preinstalled but but do not run by default.
205-
To use one in your build, add it to the services key in your `travis.yml` :
154+
The following services and databases are preinstalled but do not run by default.
155+
To use one in your build, add it to the services key in your `travis.yml`:
206156

207-
| service | version |
208-
|:-----------|:---------------|
209-
| mongodb | `4.4.29` |
210-
| mysql | `8.0.37` |
211-
| redis | `7.2.5` |
212-
| postgresql | `13.15` |
157+
| service | version |
158+
|:-----------|:---------|
159+
| mongodb | `4.4.29` |
160+
| mysql | `8.0.41` |
161+
| redis | `7.4.2` |
162+
| postgresql | `13.20` |
213163
{: style="width: 30%" }
214164

165+
### Android Support
166+
167+
For Android builds, the environment provides comprehensive support with the following pre-installed components:
168+
169+
- **Android SDK Components** – Installed components include:
170+
- `tools`
171+
- `platform-tools`
172+
- `build-tools;30.0.0`
173+
- `platforms;android-30`
174+
- `extras;google;google_play_services`
175+
- `extras;google;m2repository`
176+
- `extras;android;m2repository`
177+
178+
To use Android, specify `language: android` in your `.travis.yml` and refer to the [Android Build Environment Guide](/user/languages/android/) for additional configuration details.
179+
215180
## Other Ubuntu Linux Build Environments
216181

217-
You can have a look at the [Ubuntu Linux overview page](/user/reference/linux/) for the different Ubuntu Linux build environments you can use.
182+
For details on other Ubuntu Linux build environments available on Travis CI, please refer to the [Ubuntu Linux overview page](/user/reference/linux/).
183+
```

0 commit comments

Comments
 (0)