diff options
Diffstat (limited to '.gitlab/ci/review.gitlab-ci.yml')
-rw-r--r-- | .gitlab/ci/review.gitlab-ci.yml | 153 |
1 files changed, 98 insertions, 55 deletions
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index c7b79dac9dd..e041c6a8a5d 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -1,20 +1,14 @@ -.review-base: - extends: - - .default-tags - - .default-retry - - .default-only - - .only-review - - .only-code-qa-changes - image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base - dependencies: [] - before_script: - - source scripts/utils.sh +.except-deploys: + except: + refs: + - /^\d+-\d+-auto-deploy-\d+$/ .review-docker: extends: - .default-tags - .default-retry - .default-only + - .except-deploys image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine services: - docker:19.03.0-dind @@ -41,10 +35,31 @@ build-qa-image: - echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY} - time docker push ${QA_IMAGE} +schedule:review-cleanup: + extends: + - .default-tags + - .default-retry + - .default-only + - .only-code-qa-changes + - .only-review-schedules + - .except-deploys + stage: prepare + image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base + allow_failure: true + environment: + name: review/auto-cleanup + action: stop + before_script: + - source scripts/utils.sh + - install_gitlab_gem + script: + - ruby -rrubygems scripts/review_apps/automated_cleanup.rb + .review-build-cng-base: extends: - .default-only - .only-code-qa-changes + - .except-deploys image: ruby:2.6-alpine stage: review-prepare before_script: @@ -65,16 +80,23 @@ schedule:review-build-cng: extends: - .review-build-cng-base - .only-review-schedules - needs: ["gitlab:assets:compile"] + needs: ["gitlab:assets:compile pull-cache"] .review-deploy-base: - extends: .review-base - allow_failure: true + extends: + - .default-tags + - .default-retry + - .default-only + - .only-code-qa-changes + - .except-deploys stage: review + image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base + dependencies: [] + allow_failure: true variables: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" - GITLAB_HELM_CHART_REF: "master" + GITLAB_HELM_CHART_REF: "v2.3.7" GITLAB_EDITION: "ce" environment: name: review/${CI_COMMIT_REF_NAME} @@ -90,13 +112,21 @@ schedule:review-build-cng: - install_api_client_dependencies_with_apk - source scripts/review_apps/review-apps.sh script: + - date - check_kube_domain + - date - ensure_namespace + - date - install_tiller + - date - install_external_dns + - date - download_chart + - date - deploy || (display_deployment_debug && exit 1) + - date - add_license + - date artifacts: paths: [review_app_url.txt] expire_in: 2 days @@ -105,6 +135,7 @@ schedule:review-build-cng: review-deploy: extends: - .review-deploy-base + - .only-review needs: ["review-build-cng"] schedule:review-deploy: @@ -148,6 +179,7 @@ review-cleanup-failed-deployment: - .only-review - .only-code-qa-changes stage: qa + allow_failure: true variables: QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa" QA_CAN_TEST_GIT_PROTOCOL_V2: "false" @@ -158,6 +190,7 @@ review-cleanup-failed-deployment: GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}" GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}" EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}" + needs: ["review-deploy"] dependencies: ["review-deploy"] artifacts: paths: @@ -176,53 +209,46 @@ review-cleanup-failed-deployment: review-qa-smoke: extends: .review-qa-base - allow_failure: true script: - gitlab-qa Test::Instance::Smoke "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" review-qa-all: extends: .review-qa-base - allow_failure: true when: manual parallel: 5 script: - - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/review-qa-all_master_report.json + - export KNAPSACK_REPORT_PATH=knapsack/master_report.json - export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb - gitlab-qa Test::Instance::Any "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" -- --format RspecJunitFormatter --out tmp/rspec-${CI_JOB_ID}.xml --format html --out tmp/rspec.htm --color --format documentation -parallel-spec-reports: +.review-performance-base: extends: - - .default-tags - - .default-only + - .review-docker - .only-code-qa-changes - - .only-review - image: ruby:2.6-alpine - stage: post-test - dependencies: ["review-qa-all"] - variables: - NEW_PARALLEL_SPECS_REPORT: qa/report-new.html - BASE_ARTIFACT_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/file/qa/" + stage: qa allow_failure: true - when: manual + before_script: + - export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)" + - echo "${CI_ENVIRONMENT_URL}" + - mkdir -p gitlab-exporter + - wget -O ./gitlab-exporter/index.js https://gitlab.com/gitlab-org/gl-performance/raw/master/index.js + - 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: + - mv sitespeed-results/data/performance.json performance.json artifacts: - when: always paths: - - qa/report-new.html - - qa/gitlab-qa-run-* + - sitespeed-results/ reports: - junit: qa/gitlab-qa-run-*/**/rspec-*.xml - script: - - apk add --update build-base libxml2-dev libxslt-dev && rm -rf /var/cache/apk/* - - gem install nokogiri --no-document - - cd qa/gitlab-qa-run-*/gitlab-* - - ARTIFACT_DIRS=$(pwd |rev| awk -F / '{print $1,$2}' | rev | sed s_\ _/_) - - cd - - - '[[ -f $NEW_PARALLEL_SPECS_REPORT ]] || echo "{}" > ${NEW_PARALLEL_SPECS_REPORT}' - - scripts/merge-html-reports ${NEW_PARALLEL_SPECS_REPORT} ${BASE_ARTIFACT_URL}${ARTIFACT_DIRS} qa/gitlab-qa-run-*/**/rspec.htm + performance: performance.json review-performance: - extends: .review-qa-base - allow_failure: true + extends: + - .review-performance-base + - .only-review + needs: ["review-deploy"] + dependencies: ["review-deploy"] before_script: - export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)" - echo "${CI_ENVIRONMENT_URL}" @@ -241,24 +267,41 @@ review-performance: schedule:review-performance: extends: - - review-performance + - .review-performance-base - .only-review-schedules + needs: ["schedule:review-deploy"] dependencies: ["schedule:review-deploy"] -schedule:review-cleanup: +parallel-spec-reports: extends: - - .review-base - - .only-review-schedules - stage: prepare + - .default-tags + - .default-only + - .only-code-qa-changes + - .only-review + - .except-deploys + image: ruby:2.6-alpine + stage: post-test + dependencies: ["review-qa-all"] + variables: + NEW_PARALLEL_SPECS_REPORT: qa/report-new.html + BASE_ARTIFACT_URL: "${CI_PROJECT_URL}/-/jobs/${CI_JOB_ID}/artifacts/file/qa/" allow_failure: true - environment: - name: review/auto-cleanup - action: stop - before_script: - - source scripts/utils.sh - - install_gitlab_gem + when: manual + artifacts: + when: always + paths: + - qa/report-new.html + - qa/gitlab-qa-run-* + reports: + junit: qa/gitlab-qa-run-*/**/rspec-*.xml script: - - ruby -rrubygems scripts/review_apps/automated_cleanup.rb + - apk add --update build-base libxml2-dev libxslt-dev && rm -rf /var/cache/apk/* + - gem install nokogiri --no-document + - cd qa/gitlab-qa-run-*/gitlab-* + - ARTIFACT_DIRS=$(pwd |rev| awk -F / '{print $1,$2}' | rev | sed s_\ _/_) + - cd - + - '[[ -f $NEW_PARALLEL_SPECS_REPORT ]] || echo "{}" > ${NEW_PARALLEL_SPECS_REPORT}' + - scripts/merge-html-reports ${NEW_PARALLEL_SPECS_REPORT} ${BASE_ARTIFACT_URL}${ARTIFACT_DIRS} qa/gitlab-qa-run-*/**/rspec.htm danger-review: extends: |