review.gitlab-ci.yml 6.2 KB
Newer Older
K
Kamil Trzciński 已提交
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
.review-only: &review-only
  only:
    refs:
      - branches@gitlab-org/gitlab-ce
      - branches@gitlab-org/gitlab-ee
    kubernetes: active
  except:
    refs:
      - master
      - /(^docs[\/-].*|.*-docs$)/

.review-schedules-only: &review-schedules-only
  only:
    refs:
      - schedules@gitlab-org/gitlab-ce
      - schedules@gitlab-org/gitlab-ee
    kubernetes: active
    variables:
      - $REVIEW_APP_CLEANUP
  except:
    refs:
      - tags
      - /(^docs[\/-].*|.*-docs$)/

.review-base: &review-base
  extends: .dedicated-runner
  <<: *review-only
  image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
  cache: {}
  dependencies: []
31 32
  before_script:
    - source scripts/utils.sh
K
Kamil Trzciński 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

.review-docker: &review-docker
  <<: *review-base
  image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine
  services:
    - docker:stable-dind
  tags:
    - gitlab-org
    - docker
  variables: &review-docker-variables
    DOCKER_DRIVER: overlay2
    DOCKER_HOST: tcp://docker:2375
    LATEST_QA_IMAGE: "gitlab/${CI_PROJECT_NAME}-qa:nightly"
    QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab/${CI_PROJECT_NAME}-qa:${CI_COMMIT_REF_SLUG}"

build-qa-image:
  <<: *review-docker
50
  stage: test
K
Kamil Trzciński 已提交
51 52 53 54 55 56 57 58
  script:
    - time docker build --cache-from ${LATEST_QA_IMAGE} --tag ${QA_IMAGE} ./qa/
    - echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY}
    - time docker push ${QA_IMAGE}

.review-build-cng-base: &review-build-cng-base
  image: ruby:2.5-alpine
  stage: test
59 60 61 62 63
  when: manual
  before_script:
    - source scripts/utils.sh
    - install_api_client_dependencies_with_apk
    - install_gitlab_gem
K
Kamil Trzciński 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
  dependencies: []
  cache: {}
  script:
    - BUILD_TRIGGER_TOKEN=$REVIEW_APPS_BUILD_TRIGGER_TOKEN ./scripts/trigger-build cng

review-build-cng:
  <<: *review-only
  <<: *review-build-cng-base

schedule:review-build-cng:
  <<: *review-schedules-only
  <<: *review-build-cng-base

.review-deploy-base: &review-deploy-base
  <<: *review-base
79
  stage: review
80
  retry: 2
K
Kamil Trzciński 已提交
81 82 83 84 85
  allow_failure: true
  variables:
    HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
    DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
    GITLAB_HELM_CHART_REF: "master"
86 87 88
  environment: &review-environment
    name: review/${CI_COMMIT_REF_NAME}
    url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}
K
Kamil Trzciński 已提交
89 90 91 92 93
    on_stop: review-stop
  before_script:
    - export GITLAB_SHELL_VERSION=$(<GITLAB_SHELL_VERSION)
    - export GITALY_VERSION=$(<GITALY_SERVER_VERSION)
    - export GITLAB_WORKHORSE_VERSION=$(<GITLAB_WORKHORSE_VERSION)
94 95 96 97
    - echo "${CI_ENVIRONMENT_URL}" > review_app_url.txt
    - source scripts/utils.sh
    - install_api_client_dependencies_with_apk
    - source scripts/review_apps/review-apps.sh
K
Kamil Trzciński 已提交
98 99
  script:
    - perform_review_app_deployment
100 101 102 103 104
  artifacts:
    paths:
      - review_app_url.txt
    expire_in: 2 days
    when: always
K
Kamil Trzciński 已提交
105 106 107 108 109 110 111 112 113 114

review-deploy:
  <<: *review-deploy-base

schedule:review-deploy:
  <<: *review-deploy-base
  <<: *review-schedules-only
  script:
    - perform_review_app_deployment

115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
review-stop:
  <<: *review-base
  stage: review
  when: manual
  allow_failure: true
  variables:
    GIT_DEPTH: "1"
  environment:
    <<: *review-environment
    action: stop
  script:
    - source scripts/review_apps/review-apps.sh
    - delete
    - cleanup

K
Kamil Trzciński 已提交
130 131
.review-qa-base: &review-qa-base
  <<: *review-docker
132
  stage: qa
K
Kamil Trzciński 已提交
133 134 135 136 137 138 139 140 141 142 143 144
  allow_failure: true
  variables:
    <<: *review-docker-variables
    QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa"
    QA_CAN_TEST_GIT_PROTOCOL_V2: "false"
    GITLAB_USERNAME: "root"
    GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
    GITLAB_ADMIN_USERNAME: "root"
    GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
    GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}"
    EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}"
    QA_DEBUG: "true"
145 146
  dependencies:
    - review-deploy
K
Kamil Trzciński 已提交
147 148 149 150 151 152
  artifacts:
    paths:
      - ./qa/gitlab-qa-run-*
    expire_in: 7 days
    when: always
  before_script:
153
    - export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)"
K
Kamil Trzciński 已提交
154
    - echo "${CI_ENVIRONMENT_URL}"
155 156 157
    - echo "${QA_IMAGE}"
    - source scripts/utils.sh
    - install_api_client_dependencies_with_apk
K
Kamil Trzciński 已提交
158 159 160 161
    - gem install gitlab-qa --no-document ${GITLAB_QA_VERSION:+ --version ${GITLAB_QA_VERSION}}

review-qa-smoke:
  <<: *review-qa-base
162
  retry: 2
K
Kamil Trzciński 已提交
163 164 165 166 167
  script:
    - gitlab-qa Test::Instance::Smoke "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}"

review-qa-all:
  <<: *review-qa-base
168
  when: manual
K
Kamil Trzciński 已提交
169 170 171 172 173
  script:
    - gitlab-qa Test::Instance::Any "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}"

.review-performance-base: &review-performance-base
  <<: *review-qa-base
174 175 176 177
  stage: qa
  before_script:
    - export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)"
    - echo "${CI_ENVIRONMENT_URL}"
K
Kamil Trzciński 已提交
178 179
    - mkdir -p gitlab-exporter
    - wget -O ./gitlab-exporter/index.js https://gitlab.com/gitlab-org/gl-performance/raw/master/index.js
180 181 182 183
    - mkdir -p sitespeed-results
  script:
    - docker run --shm-size=1g --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io:6.3.1 --plugins.add ./gitlab-exporter --outputFolder sitespeed-results "${CI_ENVIRONMENT_URL}"
  after_script:
K
Kamil Trzciński 已提交
184 185 186 187 188 189 190 191 192 193
    - mv sitespeed-results/data/performance.json performance.json
  artifacts:
    paths:
      - sitespeed-results/
    reports:
      performance: performance.json

review-performance:
  <<: *review-performance-base

194 195 196 197 198
schedule:review-performance:
  <<: *review-performance-base
  <<: *review-schedules-only
  dependencies:
    - schedule:review-deploy
K
Kamil Trzciński 已提交
199 200 201 202

schedule:review-cleanup:
  <<: *review-base
  <<: *review-schedules-only
203
  stage: build
K
Kamil Trzciński 已提交
204 205 206
  allow_failure: true
  environment:
    name: review/auto-cleanup
207
    action: stop
K
Kamil Trzciński 已提交
208
  before_script:
209 210
    - source scripts/utils.sh
    - install_gitlab_gem
K
Kamil Trzciński 已提交
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
  script:
    - ruby -rrubygems scripts/review_apps/automated_cleanup.rb

danger-review:
  extends: .dedicated-pull-cache-job
  image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger
  stage: test
  dependencies: []
  before_script: []
  only:
    variables:
      - $DANGER_GITLAB_API_TOKEN
  except:
    refs:
      - master
    variables:
      - $CI_COMMIT_REF_NAME =~ /^ce-to-ee-.*/
      - $CI_COMMIT_REF_NAME =~ /.*-stable(-ee)?-prepare-.*/
  script:
    - git version
    - node --version
    - yarn install --frozen-lockfile --cache-folder .yarn-cache
    - danger --fail-on-errors=true