mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
This refactors our custom image building to utilize GitLab parallel jobs with a matrix. This makes it easier to parse what kind of matrix we are going to build in our docker images. Furthermore instead of splitting the image name, we can simply pull the versions of the tools from the environment variables. The ultimative reason: Dogfooding
108 lines
4.5 KiB
YAML
108 lines
4.5 KiB
YAML
.test_build: &test_build
|
|
extends: .test
|
|
script:
|
|
# Hack to set an array in /bin/sh
|
|
# http://unix.stackexchange.com/a/137571
|
|
- set -- $CI_JOB_NAME
|
|
- docker pull --quiet "$CI_REGISTRY_IMAGE:$1" || true
|
|
- docker build --cache-from="$CI_REGISTRY_IMAGE:$1" -f "Dockerfile.$1" .
|
|
|
|
.build_and_deploy: &build_and_deploy
|
|
extends: .deploy
|
|
script:
|
|
# Hack to set an array in /bin/sh
|
|
# http://unix.stackexchange.com/a/137571
|
|
- set -- $CI_JOB_NAME
|
|
- docker pull --quiet "$CI_REGISTRY_IMAGE:$1" || true
|
|
- docker build --cache-from="$CI_REGISTRY_IMAGE:$1" --label "ci_pipeline_url=$CI_PIPELINE_URL" --label "ci_job_url=$CI_JOB_URL" -t "$CI_REGISTRY_IMAGE:$1" -f "Dockerfile.$1" .
|
|
- docker push "$CI_REGISTRY_IMAGE:$1"
|
|
|
|
# Used by https://gitlab.com/gitlab-org/charts/auto-deploy-app/-/blob/master/.gitlab-ci.yml
|
|
alpine-helm test: *test_build
|
|
|
|
danger test: *test_build
|
|
danger-ruby-2.6.6 test: *test_build
|
|
gitlab-charts-build-base test: *test_build
|
|
gitlab-charts-build-base-helm-3 test: *test_build
|
|
gitlab-helm3.5-kubectl1.17 test: *test_build
|
|
gitlab-qa-ruby-2.7 test: *test_build
|
|
gitlab-qa-ruby-3.0 test: *test_build
|
|
gitlab-qa-alpine-ruby-2.7 test: *test_build
|
|
gitlab-qa-alpine-ruby-3.0 test: *test_build
|
|
gitlab-puppeteer test: *test_build
|
|
kaniko test: *test_build
|
|
omnibus-gitlab-bionic test: *test_build
|
|
omnibus-gitlab-centos7 test: *test_build
|
|
omnibus-gitlab-centos8 test: *test_build
|
|
omnibus-gitlab-jessie test: *test_build
|
|
omnibus-gitlab-opensuse15.1 test: *test_build
|
|
omnibus-gitlab-opensuse15.2 test: *test_build
|
|
omnibus-gitlab-opensuse15.3 test: *test_build
|
|
omnibus-gitlab-stretch test: *test_build
|
|
omnibus-gitlab-buster test: *test_build
|
|
omnibus-gitlab-xenial test: *test_build
|
|
omnibus-gitlab-focal test: *test_build
|
|
omnibus-gitlab-depscan test: *test_build
|
|
omnibus-gitlab-cve-search test: *test_build
|
|
|
|
release-tools test: *test_build
|
|
sitespeed-gitlab test: *test_build
|
|
ubi-release test: *test_build
|
|
www-gitlab-com-3.0 test: *test_build
|
|
build-git: *test_build
|
|
# Used by GitLab: https://gitlab.com/gitlab-org/gitlab/-/blob/13-8-stable-ee/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml
|
|
terraform test: *test_build
|
|
# Used by go projects for linting https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/go_guide/index.md#automatic-linting
|
|
golangci-lint-alpine test: *test_build
|
|
# Used by gitlab-operator: https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator
|
|
gitlab-operator-build-base test: *test_build
|
|
|
|
alpine-bash-jq-curl-git test: *test_build
|
|
|
|
# Used by frontend related tasks for linting GraphQL
|
|
apollo test: *test_build
|
|
|
|
|
|
# Used by https://gitlab.com/gitlab-org/charts/auto-deploy-app/-/blob/master/.gitlab-ci.yml
|
|
alpine-helm push: *build_and_deploy
|
|
|
|
danger push: *build_and_deploy
|
|
danger-ruby-2.6.6 push: *build_and_deploy
|
|
gitlab-charts-build-base push: *build_and_deploy
|
|
gitlab-charts-build-base-helm-3 push: *build_and_deploy
|
|
gitlab-helm3.5-kubectl1.17 push: *build_and_deploy
|
|
gitlab-qa-ruby-2.7 push: *build_and_deploy
|
|
gitlab-qa-ruby-3.0 push: *build_and_deploy
|
|
gitlab-qa-alpine-ruby-2.7 push: *build_and_deploy
|
|
gitlab-qa-alpine-ruby-3.0 push: *build_and_deploy
|
|
gitlab-puppeteer push: *build_and_deploy
|
|
kaniko push: *build_and_deploy
|
|
omnibus-gitlab-bionic push: *build_and_deploy
|
|
omnibus-gitlab-centos7 push: *build_and_deploy
|
|
omnibus-gitlab-centos8 push: *build_and_deploy
|
|
omnibus-gitlab-jessie push: *build_and_deploy
|
|
omnibus-gitlab-opensuse15.1 push: *build_and_deploy
|
|
omnibus-gitlab-opensuse15.2 push: *build_and_deploy
|
|
omnibus-gitlab-opensuse15.3 push: *build_and_deploy
|
|
omnibus-gitlab-stretch push: *build_and_deploy
|
|
omnibus-gitlab-buster push: *build_and_deploy
|
|
omnibus-gitlab-xenial push: *build_and_deploy
|
|
omnibus-gitlab-focal push: *build_and_deploy
|
|
omnibus-gitlab-depscan push: *build_and_deploy
|
|
omnibus-gitlab-cve-search push: *build_and_deploy
|
|
release-tools push: *build_and_deploy
|
|
sitespeed-gitlab push: *build_and_deploy
|
|
ubi-release push: *build_and_deploy
|
|
www-gitlab-com-3.0 push: *build_and_deploy
|
|
build-git push: *build_and_deploy
|
|
# Used by GitLab: https://gitlab.com/gitlab-org/gitlab/-/blob/13-8-stable-ee/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml
|
|
terraform push: *build_and_deploy
|
|
# Used by go projects for linting https://gitlab.com/gitlab-org/gitlab/blob/master/doc/development/go_guide/index.md#automatic-linting
|
|
golangci-lint-alpine push: *build_and_deploy
|
|
# Used by gitlab-operator: https://gitlab.com/gitlab-org/gl-openshift/gitlab-operator
|
|
gitlab-operator-build-base push: *build_and_deploy
|
|
|
|
alpine-bash-jq-curl-git push: *build_and_deploy
|
|
|
|
# Used by frontend related tasks for linting GraphQL
|
|
apollo push: *build_and_deploy
|