mirror of
https://ops.gitlab.net/gitlab-org/gitlab-build-images.git
synced 2025-12-09 10:02:56 +01:00
Merge branch 'welcome-to-the-matrix' into 'master'
Welcome to the matrix See merge request gitlab-org/gitlab-build-images!460
This commit is contained in:
commit
db5a4f37ea
11 changed files with 325 additions and 292 deletions
269
.gitlab-ci.yml
269
.gitlab-ci.yml
|
|
@ -1,6 +1,7 @@
|
||||||
# we support merge request workflow only
|
# we support merge request workflow only
|
||||||
include:
|
include:
|
||||||
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
|
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
|
||||||
|
- local: '.gitlab/ci/*.yml'
|
||||||
|
|
||||||
default:
|
default:
|
||||||
image: docker:20.10.9-git
|
image: docker:20.10.9-git
|
||||||
|
|
@ -8,7 +9,6 @@ default:
|
||||||
- docker:20.10.9-dind
|
- docker:20.10.9-dind
|
||||||
before_script:
|
before_script:
|
||||||
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
|
||||||
- source scripts/build-helpers.sh
|
|
||||||
- apk add -U bash
|
- apk add -U bash
|
||||||
tags:
|
tags:
|
||||||
- gitlab-org-docker
|
- gitlab-org-docker
|
||||||
|
|
@ -22,273 +22,6 @@ variables:
|
||||||
DOCKER_DRIVER: overlay2
|
DOCKER_DRIVER: overlay2
|
||||||
DOCKER_HOST: tcp://docker:2375
|
DOCKER_HOST: tcp://docker:2375
|
||||||
|
|
||||||
# Run test job always
|
|
||||||
.test:
|
|
||||||
stage: test
|
|
||||||
rules:
|
|
||||||
- when: always
|
|
||||||
|
|
||||||
# Run build job only on a default branch when triggered manually
|
|
||||||
.deploy:
|
|
||||||
stage: deploy
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
||||||
when: manual
|
|
||||||
|
|
||||||
.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"
|
|
||||||
|
|
||||||
.test_custom: &test_custom
|
|
||||||
extends: .test
|
|
||||||
script:
|
|
||||||
# Hack to set an array in /bin/sh
|
|
||||||
# http://unix.stackexchange.com/a/137571
|
|
||||||
- set -- $CI_JOB_NAME
|
|
||||||
- ./scripts/custom-docker-build "$1"
|
|
||||||
rules:
|
|
||||||
- when: always
|
|
||||||
|
|
||||||
.build_and_deploy_custom: &build_and_deploy_custom
|
|
||||||
extends: .deploy
|
|
||||||
script:
|
|
||||||
# Hack to set an array in /bin/sh
|
|
||||||
# http://unix.stackexchange.com/a/137571
|
|
||||||
- set -- $CI_JOB_NAME
|
|
||||||
- ./scripts/custom-docker-build "$1" --label "ci_pipeline_url=$CI_PIPELINE_URL" --label "ci_job_url=$CI_JOB_URL" -t "$CI_REGISTRY_IMAGE:$1"
|
|
||||||
- docker push "$CI_REGISTRY_IMAGE:$1"
|
|
||||||
|
|
||||||
# Tests
|
|
||||||
|
|
||||||
# Used by Gitaly: https://gitlab.com/gitlab-org/gitaly/blob/master/.gitlab-ci.yml
|
|
||||||
ruby-2.7-golang-1.16-git-2.31 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.16-git-2.31-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.31 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.31-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.31 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.31-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.31 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.31-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.16-git-2.33 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.16-git-2.33-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.33 test: *test_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.33-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.33 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.33-pgbouncer-1.14 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.33 test: *test_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.33-pgbouncer-1.14 test: *test_custom
|
|
||||||
|
|
||||||
|
|
||||||
# Used by GitLab: https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab-ci.yml
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
|
|
||||||
|
|
||||||
# Used by GitLab/KAS integration tests
|
|
||||||
ruby-2.7.2.patched-golang-1.16-git-2.31-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 test: *test_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 test: *test_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 test: *test_custom
|
|
||||||
|
|
||||||
# Used by GitLab's compile-production-assets and compile-test-assets jobs
|
|
||||||
ruby-2.7-git-2.31-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0-git-2.31-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-2.7-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
ruby-3.0-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 test: *test_custom
|
|
||||||
|
|
||||||
# Used by customers-gitlab-com rspec job: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab-ci.yml
|
|
||||||
ruby-2.6.6-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5: *test_custom
|
|
||||||
ruby-2.6.6-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5-docker-19.03.1: *test_custom
|
|
||||||
ruby-2.7.2-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5: *test_custom
|
|
||||||
ruby-2.7-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5: *test_custom
|
|
||||||
ruby-2.6.6-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5: *test_custom
|
|
||||||
ruby-2.6.6-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5-docker-19.03.1: *test_custom
|
|
||||||
ruby-2.7.2-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5: *test_custom
|
|
||||||
ruby-2.7-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5: *test_custom
|
|
||||||
|
|
||||||
# Used by customers-gitlab-com qa e2e test: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab/ci/e2e.gitlab-ci.yml
|
|
||||||
ruby-2.7.2-git-2.31-chrome-89-node-12.22-yarn-1.22-docker-19.03.1: *test_custom
|
|
||||||
ruby-2.7-git-2.31-chrome-89-node-12.22-yarn-1.22-docker-19.03.1: *test_custom
|
|
||||||
ruby-2.7.2-git-2.33-chrome-89-node-12.22-yarn-1.22-docker-19.03.1: *test_custom
|
|
||||||
ruby-2.7-git-2.33-chrome-89-node-12.22-yarn-1.22-docker-19.03.1: *test_custom
|
|
||||||
|
|
||||||
# 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-bullseye 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
|
|
||||||
|
|
||||||
# Builds
|
|
||||||
|
|
||||||
# Used by Gitaly: https://gitlab.com/gitlab-org/gitaly/blob/master/.gitlab-ci.yml
|
|
||||||
ruby-2.7-golang-1.16-git-2.31 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.16-git-2.31-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.31 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.31-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.31 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.31-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.31 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.31-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.16-git-2.33 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.16-git-2.33-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.33 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-golang-1.17-git-2.33-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.33 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.16-git-2.33-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.33 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-golang-1.17-git-2.33-pgbouncer-1.14 push: *build_and_deploy_custom
|
|
||||||
|
|
||||||
# Used by GitLab CE/EE: https://gitlab.com/gitlab-org/gitlab-ee/blob/master/.gitlab-ci.yml
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
|
|
||||||
# Used by GitLab/KAS integration tests
|
|
||||||
ruby-2.7.2.patched-golang-1.16-git-2.31-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.31-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.2.patched-golang-1.16-git-2.33-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0.patched-golang-1.16-git-2.33-lfs-2.9-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36-bazelisk-1.9.0 push: *build_and_deploy_custom
|
|
||||||
|
|
||||||
# Used by GitLab's compile-production-assets and compile-test-assets jobs
|
|
||||||
ruby-2.7-git-2.31-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-git-2.31-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
ruby-3.0-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36 push: *build_and_deploy_custom
|
|
||||||
|
|
||||||
# Used by customers-gitlab-com rspec job: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab-ci.yml
|
|
||||||
ruby-2.6.6-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5 push: *build_and_deploy_custom
|
|
||||||
ruby-2.6.6-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5-docker-19.03.1 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.2-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-git-2.31-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5 push: *build_and_deploy_custom
|
|
||||||
ruby-2.6.6-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5 push: *build_and_deploy_custom
|
|
||||||
ruby-2.6.6-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5-docker-19.03.1 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.2-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-git-2.33-lfs-2.9-chrome-89-node-12.22-yarn-1.22-postgresql-9.5 push: *build_and_deploy_custom
|
|
||||||
|
|
||||||
# Used by customers-gitlab-com qa e2e test: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab/ci/e2e.gitlab-ci.yml
|
|
||||||
ruby-2.7.2-git-2.31-chrome-89-node-12.22-yarn-1.22-docker-19.03.1 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-git-2.31-chrome-89-node-12.22-yarn-1.22-docker-19.03.1 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7.2-git-2.33-chrome-89-node-12.22-yarn-1.22-docker-19.03.1 push: *build_and_deploy_custom
|
|
||||||
ruby-2.7-git-2.33-chrome-89-node-12.22-yarn-1.22-docker-19.03.1 push: *build_and_deploy_custom
|
|
||||||
|
|
||||||
# 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-bullseye 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
|
|
||||||
# Used by frontend related tasks for linting GraphQL
|
|
||||||
apollo push: *build_and_deploy
|
|
||||||
|
|
||||||
alpine-bash-jq-curl-git push: *build_and_deploy
|
|
||||||
cache-google-chrome:
|
cache-google-chrome:
|
||||||
stage: automation
|
stage: automation
|
||||||
rules:
|
rules:
|
||||||
|
|
|
||||||
108
.gitlab/ci/custom.images.yml
Normal file
108
.gitlab/ci/custom.images.yml
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
.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
|
||||||
45
.gitlab/ci/customers.images.yml
Normal file
45
.gitlab/ci/customers.images.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Used by customers-gitlab-com rspec job: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab-ci.yml
|
||||||
|
.customers-matrix:
|
||||||
|
variables:
|
||||||
|
LFS: '2.9'
|
||||||
|
CHROME: '89'
|
||||||
|
NODE: '12.22'
|
||||||
|
YARN: '1.22'
|
||||||
|
POSTGRESQL: '9.5'
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- RUBY: ['2.6.6', '2.7', '2.7.2']
|
||||||
|
GIT: ['2.31', '2.33']
|
||||||
|
DOCKER: ['19.03.1', '']
|
||||||
|
|
||||||
|
customers test:
|
||||||
|
extends:
|
||||||
|
- .customers-matrix
|
||||||
|
- .test_custom
|
||||||
|
|
||||||
|
customers push:
|
||||||
|
extends:
|
||||||
|
- .customers-matrix
|
||||||
|
- .build_and_deploy_custom
|
||||||
|
|
||||||
|
# Used by customers-gitlab-com qa e2e test: https://gitlab.com/gitlab-org/customers-gitlab-com/-/blob/staging/.gitlab/ci/e2e.gitlab-ci.yml
|
||||||
|
.customers-qa-matrix:
|
||||||
|
variables:
|
||||||
|
CHROME: '89'
|
||||||
|
NODE: '12.22'
|
||||||
|
YARN: '1.22'
|
||||||
|
DOCKER: '19.03.1'
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- RUBY: ['2.7', '2.7.2']
|
||||||
|
GIT: ['2.31', '2.33']
|
||||||
|
|
||||||
|
customers-qa-assets test:
|
||||||
|
extends:
|
||||||
|
- .customers-qa-matrix
|
||||||
|
- .test_custom
|
||||||
|
|
||||||
|
customers-qa-assets push:
|
||||||
|
extends:
|
||||||
|
- .customers-qa-matrix
|
||||||
|
- .build_and_deploy_custom
|
||||||
25
.gitlab/ci/definitions.yml
Normal file
25
.gitlab/ci/definitions.yml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Run test job always
|
||||||
|
.test:
|
||||||
|
stage: test
|
||||||
|
rules:
|
||||||
|
- when: always
|
||||||
|
|
||||||
|
# Run build job only on a default branch when triggered manually
|
||||||
|
.deploy:
|
||||||
|
stage: deploy
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||||
|
when: manual
|
||||||
|
|
||||||
|
.test_custom:
|
||||||
|
extends: .test
|
||||||
|
script:
|
||||||
|
- ./scripts/custom-docker-build
|
||||||
|
rules:
|
||||||
|
- when: always
|
||||||
|
|
||||||
|
.build_and_deploy_custom:
|
||||||
|
extends: .deploy
|
||||||
|
script:
|
||||||
|
- ./scripts/custom-docker-build --label "ci_pipeline_url=$CI_PIPELINE_URL" --label "ci_job_url=$CI_JOB_URL" -t "$CI_REGISTRY_IMAGE:$1"
|
||||||
|
- ./scripts/custom-docker-push
|
||||||
19
.gitlab/ci/gitaly.images.yml
Normal file
19
.gitlab/ci/gitaly.images.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Used by Gitaly: https://gitlab.com/gitlab-org/gitaly/blob/master/.gitlab-ci.yml
|
||||||
|
.gitaly-matrix:
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- RUBY: ['2.7', '3.0']
|
||||||
|
GOLANG: ['1.16', '1.17']
|
||||||
|
GIT: ['2.31', '2.33']
|
||||||
|
PGBOUNCER: ['1.14', '']
|
||||||
|
|
||||||
|
gitaly:test:
|
||||||
|
needs: []
|
||||||
|
extends:
|
||||||
|
- .gitaly-matrix
|
||||||
|
- .test_custom
|
||||||
|
|
||||||
|
gitaly push:
|
||||||
|
extends:
|
||||||
|
- .gitaly-matrix
|
||||||
|
- .build_and_deploy_custom
|
||||||
46
.gitlab/ci/gitlab.images.yml
Normal file
46
.gitlab/ci/gitlab.images.yml
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
# Used by GitLab: https://gitlab.com/gitlab-org/gitlab/blob/master/.gitlab-ci.yml
|
||||||
|
.gitlab-matrix:
|
||||||
|
variables:
|
||||||
|
GOLANG: '1.16'
|
||||||
|
LFS: '2.9'
|
||||||
|
CHROME: '89'
|
||||||
|
NODE: '14.15'
|
||||||
|
YARN: '1.22'
|
||||||
|
GRAPHICSMAGICK: '1.3.36'
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- RUBY: ['2.7.patched', '3.0.patched']
|
||||||
|
GIT: ['2.31', '2.33']
|
||||||
|
POSTGRESQL: ['11', '12', '13']
|
||||||
|
|
||||||
|
gitlab test:
|
||||||
|
extends:
|
||||||
|
- .gitlab-matrix
|
||||||
|
- .test_custom
|
||||||
|
|
||||||
|
gitlab push:
|
||||||
|
extends:
|
||||||
|
- .gitlab-matrix
|
||||||
|
- .build_and_deploy_custom
|
||||||
|
|
||||||
|
# Used by GitLab's compile-production-assets and compile-test-assets jobs
|
||||||
|
.gitlab-assets-matrix:
|
||||||
|
variables:
|
||||||
|
LFS: '2.9'
|
||||||
|
NODE: '14.15'
|
||||||
|
YARN: '1.22'
|
||||||
|
GRAPHICSMAGICK: '1.3.36'
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- RUBY: ['2.7', '3.0']
|
||||||
|
GIT: ['2.31', '2.33']
|
||||||
|
|
||||||
|
gitlab-assets test:
|
||||||
|
extends:
|
||||||
|
- .gitlab-assets-matrix
|
||||||
|
- .test_custom
|
||||||
|
|
||||||
|
gitlab-assets push:
|
||||||
|
extends:
|
||||||
|
- .gitlab-assets-matrix
|
||||||
|
- .build_and_deploy_custom
|
||||||
24
.gitlab/ci/kas.images.yml
Normal file
24
.gitlab/ci/kas.images.yml
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Used by GitLab/KAS integration tests
|
||||||
|
.gitlab-kas-matrix:
|
||||||
|
variables:
|
||||||
|
GOLANG: '1.16'
|
||||||
|
LFS: '2.9'
|
||||||
|
CHROME: '89'
|
||||||
|
NODE: '14.15'
|
||||||
|
YARN: '1.22'
|
||||||
|
GRAPHICSMAGICK: '1.3.36'
|
||||||
|
GIT: '2.31'
|
||||||
|
POSTGRESQL: '12'
|
||||||
|
parallel:
|
||||||
|
matrix:
|
||||||
|
- RUBY: ['2.7.2.patched', '2.7.patched', '3.0.patched']
|
||||||
|
|
||||||
|
gitlab-kas test:
|
||||||
|
extends:
|
||||||
|
- .gitlab-kas-matrix
|
||||||
|
- .test_custom
|
||||||
|
|
||||||
|
gitlab-kas push:
|
||||||
|
extends:
|
||||||
|
- .gitlab-kas-matrix
|
||||||
|
- .build_and_deploy_custom
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
source scripts/build-helpers.sh
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
source "$SCRIPT_DIR/lib/custom-docker.sh"
|
||||||
|
|
||||||
function print_golang_args() {
|
function print_golang_args() {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
|
@ -245,23 +245,25 @@ function parse_arguments() {
|
||||||
CUSTOM_IMAGE_NAME=debian
|
CUSTOM_IMAGE_NAME=debian
|
||||||
CUSTOM_IMAGE_VERSION=buster
|
CUSTOM_IMAGE_VERSION=buster
|
||||||
|
|
||||||
while read image; do
|
for tool in "${TOOLS[@]}"; do
|
||||||
read version
|
if [ -n "${!tool}" ]; then
|
||||||
case "$image" in
|
version="${!tool}"
|
||||||
ruby) print_ruby_args $version ;;
|
case "$tool" in
|
||||||
golang) print_golang_args $version ;;
|
RUBY) print_ruby_args $version ;;
|
||||||
chrome) print_chrome_args $version ;;
|
GOLANG) print_golang_args $version ;;
|
||||||
docker) print_docker_args $version ;;
|
CHROME) print_chrome_args $version ;;
|
||||||
git) print_git_args $version ;;
|
DOCKER) print_docker_args $version ;;
|
||||||
lfs) print_lfs_args $version ;;
|
GIT) print_git_args $version ;;
|
||||||
node) print_node_args $version ;;
|
LFS) print_lfs_args $version ;;
|
||||||
yarn) print_yarn_args $version ;;
|
NODE) print_node_args $version ;;
|
||||||
postgresql) print_postgres_args $version ;;
|
YARN) print_yarn_args $version ;;
|
||||||
graphicsmagick) print_graphicsmagick_args $version ;;
|
POSTGRESQL) print_postgres_args $version ;;
|
||||||
pgbouncer) print_pgbouncer_args $version ;;
|
GRAPHICSMAGICK) print_graphicsmagick_args $version ;;
|
||||||
bazelisk) print_bazelisk_args $version ;;
|
PGBOUNCER) print_pgbouncer_args $version ;;
|
||||||
*) exit 1;;
|
BAZELISK) print_bazelisk_args $version ;;
|
||||||
esac
|
*) echo "unknown tool $tool"; exit 1;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
printf -- "--build-arg CUSTOM_IMAGE_NAME=%s " "$CUSTOM_IMAGE_NAME"
|
printf -- "--build-arg CUSTOM_IMAGE_NAME=%s " "$CUSTOM_IMAGE_NAME"
|
||||||
|
|
@ -269,10 +271,8 @@ function parse_arguments() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate_command() {
|
function generate_command() {
|
||||||
build_image_name=$1; shift;
|
|
||||||
|
|
||||||
printf -- "docker build "
|
printf -- "docker build "
|
||||||
echo $build_image_name | tr '-' '\n' | parse_arguments
|
parse_arguments
|
||||||
|
|
||||||
for i in "$@"
|
for i in "$@"
|
||||||
do
|
do
|
||||||
|
|
@ -282,14 +282,17 @@ function generate_command() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_custom_if_needed() {
|
function build_custom_if_needed() {
|
||||||
build_image_name=$1
|
build_image_name=$(get_image_name)
|
||||||
|
echo "Building image $build_image_name"
|
||||||
full_image_name="$CI_REGISTRY_IMAGE:$build_image_name"
|
full_image_name="$CI_REGISTRY_IMAGE:$build_image_name"
|
||||||
|
|
||||||
# This re-uses and builds an existing image if needed
|
# This re-uses and builds an existing image if needed
|
||||||
docker pull --quiet "$full_image" || true
|
docker pull --quiet "$full_image" || true
|
||||||
docker_command=$(generate_command $@ --cache-from="$full_image_name" )
|
docker_command=$(generate_command $@ --cache-from="$full_image_name" )
|
||||||
echo "Building $build_image_name with $docker_command"
|
echo "Docker command:"
|
||||||
|
printf "\t%s" "$docker_command"
|
||||||
eval $docker_command
|
eval $docker_command
|
||||||
|
printf "\n\nSUCCESS - Successfully built:\n\t%s" "$build_image_name"
|
||||||
}
|
}
|
||||||
|
|
||||||
build_custom_if_needed $@
|
build_custom_if_needed $@
|
||||||
|
|
|
||||||
18
scripts/custom-docker-push
Executable file
18
scripts/custom-docker-push
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||||
|
source "$SCRIPT_DIR/lib/custom-docker.sh"
|
||||||
|
|
||||||
|
function custom_push() {
|
||||||
|
build_image_name=$(get_image_name)
|
||||||
|
echo "Pushing image $build_image_name"
|
||||||
|
full_image_name="$CI_REGISTRY_IMAGE:$build_image_name"
|
||||||
|
|
||||||
|
docker push "$full_image_name"
|
||||||
|
|
||||||
|
printf "\n\nSUCCESS - Successfully pushed:\n\t%s" "$build_image_name"
|
||||||
|
}
|
||||||
|
|
||||||
|
custom_push
|
||||||
12
scripts/lib/custom-docker.sh
Normal file
12
scripts/lib/custom-docker.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
TOOLS=(RUBY GOLANG GIT LFS CHROME NODE YARN POSTGRESQL GRAPHICSMAGICK PGBOUNCER BAZELISK)
|
||||||
|
|
||||||
|
function get_image_name(){
|
||||||
|
local IMAGE_NAME
|
||||||
|
IMAGE_NAME=""
|
||||||
|
for tool in "${TOOLS[@]}"; do
|
||||||
|
if [ -n "${!tool}" ]; then
|
||||||
|
IMAGE_NAME="${IMAGE_NAME}-${tool,,}-${!tool}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "${IMAGE_NAME:1}"
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue