Find a file
Zeger-Jan van de Weg 2a7a78a829
Add Golang 1.11 for build images
Go released a new version this week; https://blog.golang.org/go1.11
which makes go 1.9 EOL. To remove that version from our testing matrix,
we should make sure we support 1.11 first.

This only creates the 1.11 build images, other projects need to do the
cascading changes.
2018-08-26 09:37:43 +02:00
scripts Add Golang 1.11 for build images 2018-08-26 09:37:43 +02:00
.gitlab-ci.yml Add Golang 1.11 for build images 2018-08-26 09:37:43 +02:00
CONTRIBUTING.md Update license and contributing.md 2017-11-14 14:57:23 +01:00
Dockerfile.alpine-aws Add an alpine image with aws cli 2018-08-02 21:21:06 +05:30
Dockerfile.custom Merge branch 'master' into sh-bump-chrome-and-chromedriver-v66 2018-06-08 10:40:42 -07:00
Dockerfile.danger Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.gitlab-charts-build-base Add a Dockerfile.cloud-native for jobs that need kubctl / helm / terraform 2018-07-26 11:22:09 +02:00
Dockerfile.gitlab-qa use ruby 2.4 2018-07-09 16:46:50 -04:00
Dockerfile.omnibus-gitlab-bionic Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-centos6 Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-centos7 Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-jessie Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-opensuse42.3 Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-stretch Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-trusty Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-wheezy Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.omnibus-gitlab-xenial Add a custom Docker image for Danger jobs 2018-07-26 13:09:21 +02:00
Dockerfile.release-tools Add a release-tools Dockerfile 2018-06-21 12:04:43 -05:00
Dockerfile.sitespeed-gitlab add custom sitespeed image for gitlab 2018-02-21 17:50:11 -06:00
Dockerfile.www-gitlab-com-2.4 Update ruby in www-gitlab-com docker image to 2.4.x 2018-06-08 16:29:12 +00:00
LICENSE Update license and contributing.md 2017-11-14 14:57:23 +01:00
README.md Add graphicsmagick versioned feature 2018-06-06 09:11:38 +00:00

This repository is used to build docker images that are used to build and test various parts of GitLab:

  1. Build Omnibus packages
  2. Test GitLab-CE/EE project
  3. Build gitlab-org/www-gitlab-com project

Adding a new image

There are two methods to adding a new image:

  1. Use a docker buildfile
  2. Use a custom image with versioned features

Use a docker buildfile

A bespoke image is one that uses it's own Dockerfile. In the interests of avoiding repetition, it's better to use the custom docker build if possible.

Assuming the image you want to add is called new-image....

  1. Add a test task: new-image test: *test_build
  2. Add a new build task: new-image: *build_and_deploy
  3. Add a Dockerfile: Dockerfile.new-image

Use a custom image with versioned features

To add a new image to the build, edit .gitlab-ci.yml.

With custom images, the name of the image is used to define the contents (as opposed to use a bespoke Dockerfile build).

For this reason, the name needs to be correctly defined.

The name is defined as [feature]-[version] pairs, separated by -.

Here are some example build names:

  1. ruby-2.1-git-2.7-phantomjs-2.1
  2. ruby-2.3.3-golang-1.8-git-2.7-chrome-60.0-node-7.1-postgresql-9.6
  3. ruby-2.4.1-golang-1.8-git-2.7-phantomjs-2.1-node-7.1-postgresql-9.6

The first pair represents the base image and version. So ruby-2.1-... will use the ruby:2.1 base image, while golang-1.8 will use the golang:1.8 base image.

Each of the following parts represents another feature and version. Available options are:

  1. golang
  2. git
  3. chrome
  4. node
  5. yarn
  6. phantomjs
  7. postgres
  8. terraform
  9. ansible
  10. graphicsmagick

Adding a new build

As an example, if you want to add new image for Ruby 2.4 with git 2.14 and golang 1.9, the name would be ruby-2.4-golang-1.9-git-2.14.

  1. Add a test task: ruby-2.4-golang-1.9-git-2.14 test: *test_custom
  2. Add a new build task: ruby-2.4-golang-1.9-git-2.14: *build_and_deploy_custom

Note regarding Google Chrome

Google has a policy of yanking older versions of Google Chrome from their PPA whenever a new major version is released. To help maintain consistant build images, there is a CI step that saves the latest Google Chrome .deb into an S3 bucket. The install for Chrome will attempt to retrieve from the bucket if it cannot find the file in the apt repository. See scripts/cache-google-chrome for more details.

Contributing

See Contributing