summaryrefslogtreecommitdiff
path: root/.gitlab/ci/build-images.gitlab-ci.yml
blob: e2c707b6895b17ac89604693ac6df6f456aa83bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
.base-image-build:
  extends: .use-kaniko
  variables:
    GIT_LFS_SKIP_SMUDGE: 1
  retry: 2

# This image is used by:
# - The `review-qa-*` jobs
# - The `e2e:package-and-test` child pipeline test stage jobs
# See https://docs.gitlab.com/ee/development/testing_guide/end_to_end/index.html#testing-code-in-merge-requests for more details.
build-qa-image:
  extends:
    - .base-image-build
    - .build-images:rules:build-qa-image
  stage: build-images
  needs: []
  variables:
    # Default latest tag for particular branch
    QA_IMAGE_BRANCH: ${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}
  script:
    - export QA_IMAGE="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_SHA}"
      # Auto-deploy tag format uses first 12 letters of commit SHA. Tag with
      # that reference also
    - export QA_IMAGE_FOR_AUTO_DEPLOY="${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_SHA:0:11}"
    - echo $QA_IMAGE
    - echo $QA_IMAGE_BRANCH
    - echo $QA_IMAGE_FOR_AUTO_DEPLOY
    - |
      /kaniko/executor \
        --context=${CI_PROJECT_DIR} \
        --dockerfile=${CI_PROJECT_DIR}/qa/Dockerfile \
        --destination=${QA_IMAGE} \
        --destination=${QA_IMAGE_BRANCH} \
        --destination=${QA_IMAGE_FOR_AUTO_DEPLOY} \
        --build-arg=CHROME_VERSION=${CHROME_VERSION} \
        --build-arg=DOCKER_VERSION=${DOCKER_VERSION} \
        --build-arg=QA_BUILD_TARGET=${QA_BUILD_TARGET:-qa} \
        --cache=true

# This image is used by:
# - The `CNG` pipelines (via the `review-build-cng` job): https://gitlab.com/gitlab-org/build/CNG/-/blob/cfc67136d711e1c8c409bf8e57427a644393da2f/.gitlab-ci.yml#L335
# - The `omnibus-gitlab` pipelines (via the `e2e:package-and-test` job): https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/dfd1ad475868fc84e91ab7b5706aa03e46dc3a86/.gitlab-ci.yml#L130
build-assets-image:
  extends:
    - .base-image-build
    - .build-images:rules:build-assets-image
  stage: build-images
  needs: ["compile-production-assets"]
  script:
    # TODO: Change the image tag to be the MD5 of assets files and skip image building if the image exists
    # We'll also need to pass GITLAB_ASSETS_TAG to the trigerred omnibus-gitlab pipeline similarly to how we do it for trigerred CNG pipelines
    # https://gitlab.com/gitlab-org/gitlab/issues/208389
    - run_timed_command "scripts/build_assets_image"