diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 183 |
1 files changed, 86 insertions, 97 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ed993abae73..fed5971233d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ -image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.13-phantomjs-2.1-node-8.x-yarn-1.0-postgresql-9.6" +image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.5-golang-1.8-git-2.13-chrome-62.0-node-8.x-yarn-1.2-postgresql-9.6" .default-cache: &default-cache - key: "ruby-233-with-yarn" + key: "ruby-235-with-yarn" paths: - vendor/ruby - .yarn-cache/ @@ -23,11 +23,10 @@ variables: SIMPLECOV: "true" GIT_DEPTH: "20" GIT_SUBMODULE_STRATEGY: "none" - PHANTOMJS_VERSION: "2.1.1" GET_SOURCES_ATTEMPTS: "3" KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master.json KNAPSACK_SPINACH_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/spinach_report-master.json - FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/${CI_PROJECT_NAME}/report-master.json + FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json before_script: - bundle --version @@ -49,11 +48,11 @@ stages: - gitlab-org .tests-metadata-state: &tests-metadata-state - services: [] + <<: *dedicated-runner variables: - SETUP_DB: "false" - USE_BUNDLE_INSTALL: "false" TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache" + before_script: + - source scripts/utils.sh artifacts: expire_in: 31d paths: @@ -80,6 +79,7 @@ stages: .rspec-metadata: &rspec-metadata <<: *dedicated-runner <<: *pull-cache + <<: *except-docs stage: test script: - JOB_NAME=( $CI_JOB_NAME ) @@ -87,12 +87,13 @@ stages: - export CI_NODE_TOTAL=${JOB_NAME[-1]} - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - export KNAPSACK_GENERATE_REPORT=true - - export ALL_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/${CI_PROJECT_NAME}/all_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - - export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/${CI_PROJECT_NAME}/new_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json + - export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH} + - export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json + - export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${JOB_NAME[0]}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json - export FLAKY_RSPEC_GENERATE_REPORT=true - export CACHE_CLASSES=true - cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH} - - cp ${FLAKY_RSPEC_SUITE_REPORT_PATH} ${ALL_FLAKY_RSPEC_REPORT_PATH} + - '[[ -f $FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_REPORT_PATH}' - '[[ -f $NEW_FLAKY_RSPEC_REPORT_PATH ]] || echo "{}" > ${NEW_FLAKY_RSPEC_REPORT_PATH}' - scripts/gitaly-test-spawn - knapsack rspec "--color --format documentation" @@ -108,16 +109,15 @@ stages: .rspec-metadata-pg: &rspec-metadata-pg <<: *rspec-metadata <<: *use-pg - <<: *except-docs .rspec-metadata-mysql: &rspec-metadata-mysql <<: *rspec-metadata <<: *use-mysql - <<: *except-docs .spinach-metadata: &spinach-metadata <<: *dedicated-runner <<: *pull-cache + <<: *except-docs stage: test script: - JOB_NAME=( $CI_JOB_NAME ) @@ -140,12 +140,10 @@ stages: .spinach-metadata-pg: &spinach-metadata-pg <<: *spinach-metadata <<: *use-pg - <<: *except-docs .spinach-metadata-mysql: &spinach-metadata-mysql <<: *spinach-metadata <<: *use-mysql - <<: *except-docs .only-canonical-masters: &only-canonical-masters only: @@ -156,12 +154,8 @@ stages: # Trigger a package build in omnibus-gitlab repository build-package: - image: ruby:2.3-alpine + image: ruby:2.4-alpine before_script: [] - services: [] - variables: - SETUP_DB: "false" - USE_BUNDLE_INSTALL: "false" stage: build cache: {} when: manual @@ -182,13 +176,9 @@ build-package: - apk add --update openssl - wget https://gitlab.com/gitlab-org/gitlab-ce/raw/master/scripts/trigger-build-docs - chmod 755 trigger-build-docs - services: [] cache: {} dependencies: [] - artifacts: {} variables: - SETUP_DB: "false" - USE_BUNDLE_INSTALL: "false" GIT_STRATEGY: none when: manual only: @@ -221,7 +211,6 @@ review-docs-cleanup: # Retrieve knapsack and rspec_flaky reports retrieve-tests-metadata: <<: *tests-metadata-state - <<: *dedicated-runner <<: *except-docs stage: prepare cache: @@ -233,13 +222,12 @@ retrieve-tests-metadata: - wget -O $KNAPSACK_SPINACH_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$KNAPSACK_SPINACH_SUITE_REPORT_PATH || rm $KNAPSACK_SPINACH_SUITE_REPORT_PATH - '[[ -f $KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH}' - '[[ -f $KNAPSACK_SPINACH_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_SPINACH_SUITE_REPORT_PATH}' - - mkdir -p rspec_flaky/${CI_PROJECT_NAME}/ + - mkdir -p rspec_flaky/ - wget -O $FLAKY_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$FLAKY_RSPEC_SUITE_REPORT_PATH || rm $FLAKY_RSPEC_SUITE_REPORT_PATH - '[[ -f $FLAKY_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${FLAKY_RSPEC_SUITE_REPORT_PATH}' update-tests-metadata: <<: *tests-metadata-state - <<: *dedicated-runner <<: *only-canonical-masters stage: post-test cache: @@ -252,24 +240,24 @@ update-tests-metadata: - retry gem install fog-aws mime-types - scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec-pg_node_*.json - scripts/merge-reports ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/spinach-pg_node_*.json - - scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/${CI_PROJECT_NAME}/all_node_*.json + - scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/all_*_*.json - '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH $KNAPSACK_SPINACH_SUITE_REPORT_PATH' - '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $FLAKY_RSPEC_SUITE_REPORT_PATH' - rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json - - rm -f rspec_flaky/${CI_PROJECT_NAME}/*_node_*.json + - rm -f rspec_flaky/all_*.json rspec_flaky/new_*.json flaky-examples-check: <<: *dedicated-runner image: ruby:2.3-alpine services: [] before_script: [] - cache: {} variables: SETUP_DB: "false" USE_BUNDLE_INSTALL: "false" - NEW_FLAKY_SPECS_REPORT: rspec_flaky/${CI_PROJECT_NAME}/new_rspec_flaky_examples.json + NEW_FLAKY_SPECS_REPORT: rspec_flaky/report-new.json stage: post-test allow_failure: yes + retry: 0 only: - branches except: @@ -281,7 +269,7 @@ flaky-examples-check: - rspec_flaky/ script: - '[[ -f $NEW_FLAKY_SPECS_REPORT ]] || echo "{}" > ${NEW_FLAKY_SPECS_REPORT}' - - scripts/merge-reports $NEW_FLAKY_SPECS_REPORT rspec_flaky/${CI_PROJECT_NAME}/new_node_*.json + - scripts/merge-reports ${NEW_FLAKY_SPECS_REPORT} rspec_flaky/new_*_*.json - scripts/detect-new-flaky-examples $NEW_FLAKY_SPECS_REPORT setup-test-env: @@ -304,69 +292,69 @@ setup-test-env: - public/assets - tmp/tests -rspec-pg 0 25: *rspec-metadata-pg -rspec-pg 1 25: *rspec-metadata-pg -rspec-pg 2 25: *rspec-metadata-pg -rspec-pg 3 25: *rspec-metadata-pg -rspec-pg 4 25: *rspec-metadata-pg -rspec-pg 5 25: *rspec-metadata-pg -rspec-pg 6 25: *rspec-metadata-pg -rspec-pg 7 25: *rspec-metadata-pg -rspec-pg 8 25: *rspec-metadata-pg -rspec-pg 9 25: *rspec-metadata-pg -rspec-pg 10 25: *rspec-metadata-pg -rspec-pg 11 25: *rspec-metadata-pg -rspec-pg 12 25: *rspec-metadata-pg -rspec-pg 13 25: *rspec-metadata-pg -rspec-pg 14 25: *rspec-metadata-pg -rspec-pg 15 25: *rspec-metadata-pg -rspec-pg 16 25: *rspec-metadata-pg -rspec-pg 17 25: *rspec-metadata-pg -rspec-pg 18 25: *rspec-metadata-pg -rspec-pg 19 25: *rspec-metadata-pg -rspec-pg 20 25: *rspec-metadata-pg -rspec-pg 21 25: *rspec-metadata-pg -rspec-pg 22 25: *rspec-metadata-pg -rspec-pg 23 25: *rspec-metadata-pg -rspec-pg 24 25: *rspec-metadata-pg - -rspec-mysql 0 25: *rspec-metadata-mysql -rspec-mysql 1 25: *rspec-metadata-mysql -rspec-mysql 2 25: *rspec-metadata-mysql -rspec-mysql 3 25: *rspec-metadata-mysql -rspec-mysql 4 25: *rspec-metadata-mysql -rspec-mysql 5 25: *rspec-metadata-mysql -rspec-mysql 6 25: *rspec-metadata-mysql -rspec-mysql 7 25: *rspec-metadata-mysql -rspec-mysql 8 25: *rspec-metadata-mysql -rspec-mysql 9 25: *rspec-metadata-mysql -rspec-mysql 10 25: *rspec-metadata-mysql -rspec-mysql 11 25: *rspec-metadata-mysql -rspec-mysql 12 25: *rspec-metadata-mysql -rspec-mysql 13 25: *rspec-metadata-mysql -rspec-mysql 14 25: *rspec-metadata-mysql -rspec-mysql 15 25: *rspec-metadata-mysql -rspec-mysql 16 25: *rspec-metadata-mysql -rspec-mysql 17 25: *rspec-metadata-mysql -rspec-mysql 18 25: *rspec-metadata-mysql -rspec-mysql 19 25: *rspec-metadata-mysql -rspec-mysql 20 25: *rspec-metadata-mysql -rspec-mysql 21 25: *rspec-metadata-mysql -rspec-mysql 22 25: *rspec-metadata-mysql -rspec-mysql 23 25: *rspec-metadata-mysql -rspec-mysql 24 25: *rspec-metadata-mysql - -spinach-pg 0 5: *spinach-metadata-pg -spinach-pg 1 5: *spinach-metadata-pg -spinach-pg 2 5: *spinach-metadata-pg -spinach-pg 3 5: *spinach-metadata-pg -spinach-pg 4 5: *spinach-metadata-pg - -spinach-mysql 0 5: *spinach-metadata-mysql -spinach-mysql 1 5: *spinach-metadata-mysql -spinach-mysql 2 5: *spinach-metadata-mysql -spinach-mysql 3 5: *spinach-metadata-mysql -spinach-mysql 4 5: *spinach-metadata-mysql +rspec-pg 0 26: *rspec-metadata-pg +rspec-pg 1 26: *rspec-metadata-pg +rspec-pg 2 26: *rspec-metadata-pg +rspec-pg 3 26: *rspec-metadata-pg +rspec-pg 4 26: *rspec-metadata-pg +rspec-pg 5 26: *rspec-metadata-pg +rspec-pg 6 26: *rspec-metadata-pg +rspec-pg 7 26: *rspec-metadata-pg +rspec-pg 8 26: *rspec-metadata-pg +rspec-pg 9 26: *rspec-metadata-pg +rspec-pg 10 26: *rspec-metadata-pg +rspec-pg 11 26: *rspec-metadata-pg +rspec-pg 12 26: *rspec-metadata-pg +rspec-pg 13 26: *rspec-metadata-pg +rspec-pg 14 26: *rspec-metadata-pg +rspec-pg 15 26: *rspec-metadata-pg +rspec-pg 16 26: *rspec-metadata-pg +rspec-pg 17 26: *rspec-metadata-pg +rspec-pg 18 26: *rspec-metadata-pg +rspec-pg 19 26: *rspec-metadata-pg +rspec-pg 20 26: *rspec-metadata-pg +rspec-pg 21 26: *rspec-metadata-pg +rspec-pg 22 26: *rspec-metadata-pg +rspec-pg 23 26: *rspec-metadata-pg +rspec-pg 24 26: *rspec-metadata-pg +rspec-pg 25 26: *rspec-metadata-pg + +rspec-mysql 0 26: *rspec-metadata-mysql +rspec-mysql 1 26: *rspec-metadata-mysql +rspec-mysql 2 26: *rspec-metadata-mysql +rspec-mysql 3 26: *rspec-metadata-mysql +rspec-mysql 4 26: *rspec-metadata-mysql +rspec-mysql 5 26: *rspec-metadata-mysql +rspec-mysql 6 26: *rspec-metadata-mysql +rspec-mysql 7 26: *rspec-metadata-mysql +rspec-mysql 8 26: *rspec-metadata-mysql +rspec-mysql 9 26: *rspec-metadata-mysql +rspec-mysql 10 26: *rspec-metadata-mysql +rspec-mysql 11 26: *rspec-metadata-mysql +rspec-mysql 12 26: *rspec-metadata-mysql +rspec-mysql 13 26: *rspec-metadata-mysql +rspec-mysql 14 26: *rspec-metadata-mysql +rspec-mysql 15 26: *rspec-metadata-mysql +rspec-mysql 16 26: *rspec-metadata-mysql +rspec-mysql 17 26: *rspec-metadata-mysql +rspec-mysql 18 26: *rspec-metadata-mysql +rspec-mysql 19 26: *rspec-metadata-mysql +rspec-mysql 20 26: *rspec-metadata-mysql +rspec-mysql 21 26: *rspec-metadata-mysql +rspec-mysql 22 26: *rspec-metadata-mysql +rspec-mysql 23 26: *rspec-metadata-mysql +rspec-mysql 24 26: *rspec-metadata-mysql +rspec-mysql 25 26: *rspec-metadata-mysql + +spinach-pg 0 4: *spinach-metadata-pg +spinach-pg 1 4: *spinach-metadata-pg +spinach-pg 2 4: *spinach-metadata-pg +spinach-pg 3 4: *spinach-metadata-pg + +spinach-mysql 0 4: *spinach-metadata-mysql +spinach-mysql 1 4: *spinach-metadata-mysql +spinach-mysql 2 4: *spinach-metadata-mysql +spinach-mysql 3 4: *spinach-metadata-mysql # Static analysis jobs .ruby-static-analysis: &ruby-static-analysis @@ -404,6 +392,7 @@ docs lint: before_script: [] script: - scripts/lint-doc.sh + - scripts/lint-changelog-yaml - mv doc/ /nanoc/content/ - cd /nanoc # Build HTML from Markdown @@ -428,6 +417,7 @@ ee_compat_check: - branches@gitlab-org/gitlab-ee - branches@gitlab/gitlab-ee allow_failure: yes + retry: 0 cache: key: "ee_compat_check_repo" paths: @@ -464,7 +454,7 @@ db:migrate:reset-mysql: variables: SETUP_DB: "false" script: - - git fetch origin v8.14.10 + - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v9.3.0 - git checkout -f FETCH_HEAD - bundle install $BUNDLE_INSTALL_FLAGS - cp config/gitlab.yml.example config/gitlab.yml @@ -560,7 +550,6 @@ karma: <<: *dedicated-runner <<: *except-docs <<: *pull-cache - image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.13-chrome-61.0-node-8.x-yarn-1.0-postgresql-9.6" stage: test variables: BABEL_ENV: "coverage" @@ -578,7 +567,7 @@ karma: - chrome_debug.log - coverage-javascript/ -codeclimate: +codequality: <<: *except-docs <<: *pull-cache before_script: [] |