summaryrefslogtreecommitdiff
path: root/.gitlab/ci
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/ci')
-rw-r--r--.gitlab/ci/ee-specific-checks.gitlab-ci.yml22
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml139
-rw-r--r--.gitlab/ci/test-metadata.gitlab-ci.yml5
3 files changed, 143 insertions, 23 deletions
diff --git a/.gitlab/ci/ee-specific-checks.gitlab-ci.yml b/.gitlab/ci/ee-specific-checks.gitlab-ci.yml
deleted file mode 100644
index babb89b4606..00000000000
--- a/.gitlab/ci/ee-specific-checks.gitlab-ci.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-.ee-specific-check:
- extends: .default-tags
- dependencies: []
- only:
- - branches@gitlab-org/gitlab-ee
- except:
- - master
- - tags
- - /[\d-]+-stable(-ee)?/
- - /[\d-]+-auto-deploy-\d{7}/
- - /^security-/
- - /\bce\-to\-ee\b/
-
-ee-files-location-check:
- extends: .ee-specific-check
- script:
- - scripts/ee-files-location-check
-
-ee-specific-lines-check:
- extends: .ee-specific-check
- script:
- - scripts/ee-specific-lines-check
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 878be25c39b..a1ed0b102c9 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -8,6 +8,11 @@
- master@gitlab/gitlabhq
- master@gitlab/gitlab-ee
+.only-gitlab-ee:
+ only:
+ - branches@gitlab-org/gitlab-ee
+ - tags@gitlab-org/gitlab-ee
+
.rake-exec:
extends:
- .default-tags
@@ -231,7 +236,7 @@ db:migrate-from-v11.11.0:
variables:
SETUP_DB: "false"
script:
- - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v11.11.0
+ - git fetch https://gitlab.com/gitlab-org/gitlab-ee.git v11.11.0-ee
- git checkout -f FETCH_HEAD
- sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile
- sed -i "s/gem 'bootsnap', '~> 1.0.0'/gem 'bootsnap'/" Gemfile
@@ -314,3 +319,135 @@ coverage:
- coverage/index.html
- coverage/assets/
- tmp/memory_test/
+
+## EE-specific content
+.rspec-base-ee:
+ extends:
+ - .rspec-base
+ - .only-gitlab-ee
+ script:
+ - JOB_NAME=( $CI_JOB_NAME )
+ - TEST_TOOL=${JOB_NAME[0]}
+ - TEST_LEVEL=${JOB_NAME[1]}
+ - DATABASE=${JOB_NAME[2]}
+ - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_ee_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
+ - export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec
+ - export CACHE_CLASSES=true
+ - cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
+ - scripts/gitaly-test-spawn
+ - date
+ - 'export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new(%(ee/)).pattern(:${TEST_LEVEL})")'
+ - mkdir -p tmp/memory_test
+ - export MEMORY_TEST_PATH="tmp/memory_test/ee_${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"
+ - knapsack rspec "--color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag level:${TEST_LEVEL} --tag ~geo"
+ - date
+
+.rspec-base-pg-ee:
+ extends: .rspec-base-ee
+ services:
+ - name: postgres:9.6
+ command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
+ - name: redis:alpine
+ - name: docker.elastic.co/elasticsearch/elasticsearch:5.6.12
+
+rspec unit pg ee:
+ extends: .rspec-base-pg-ee
+ parallel: 7
+
+rspec integration pg ee:
+ extends: .rspec-base-pg-ee
+ parallel: 3
+
+rspec system pg ee:
+ extends: .rspec-base-pg-ee
+ parallel: 5
+
+.rspec-base-pg-geo:
+ extends:
+ - .rspec-base
+ - .only-gitlab-ee
+ script:
+ - JOB_NAME=( $CI_JOB_NAME )
+ - TEST_TOOL=${JOB_NAME[0]}
+ - TEST_LEVEL=${JOB_NAME[1]}
+ - DATABASE=${JOB_NAME[2]}
+ - export KNAPSACK_TEST_FILE_PATTERN="ee/spec/**{,/*/**}/*_spec.rb" KNAPSACK_GENERATE_REPORT=true CACHE_CLASSES=true
+ - export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
+ - cp ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
+ - source scripts/prepare_postgres_fdw.sh
+ - scripts/gitaly-test-spawn
+ - mkdir -p tmp/memory_test
+ - export MEMORY_TEST_PATH="tmp/memory_test/ee_${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_memory.csv"
+ - knapsack rspec "-Ispec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag geo"
+
+rspec geo pg ee:
+ extends:
+ - .rspec-base-pg-geo
+ - .use-pg
+ - .except-docs-qa-geo
+ parallel: 3
+
+rspec geo pg-10 ee:
+ extends:
+ - .rspec-base-pg-geo
+ - .use-pg-10
+ - .except-docs-qa-geo
+ parallel: 3
+
+quick-rspec geo pg ee:
+ extends:
+ - .rspec-base-pg-geo
+ - .use-pg
+ stage: quick-test
+ only:
+ - /(^geo[\/-].*|.*-geo$)/
+
+quick-rspec geo pg-10 ee:
+ extends:
+ - .rspec-base-pg-geo
+ - .use-pg-10
+ stage: quick-test
+ only:
+ - /(^geo[\/-].*|.*-geo$)/
+
+rspec quarantine pg ee:
+ extends: rspec quarantine pg
+ script:
+ - export NO_KNAPSACK=1 CACHE_CLASSES=true
+ - scripts/gitaly-test-spawn
+ - bin/rspec --color --format documentation --format RspecJunitFormatter --out junit_rspec.xml --tag quarantine -- ee/spec/
+
+migration:upgrade-pg-ce-to-ee:
+ extends:
+ - .default-tags
+ - .default-retry
+ - .default-cache
+ - .default-before_script
+ - .use-pg
+ - .except-docs-qa
+ dependencies: ["setup-test-env"]
+ variables:
+ SETUP_DB: "false"
+ script:
+ - ruby -r./scripts/ee_specific_check/ee_specific_check -e'EESpecificCheck.fetch_remote_ce_branch'
+ - git checkout -f FETCH_HEAD
+ - . scripts/utils.sh
+ - . scripts/prepare_build.sh
+ - date
+ - setup_db
+ - date
+ - git checkout -f $CI_COMMIT_SHA
+ - date
+ - . scripts/prepare_build.sh
+ - date
+ - bundle exec rake db:migrate
+
+db:rollback geo:
+ extends:
+ - db:rollback
+ - .only-gitlab-ee
+ script:
+ - bundle exec rake geo:db:migrate VERSION=20170627195211
+ - bundle exec rake geo:db:migrate
+
+## END of EE-specific content
diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml
index b9dac64957e..a04f67e4c43 100644
--- a/.gitlab/ci/test-metadata.gitlab-ci.yml
+++ b/.gitlab/ci/test-metadata.gitlab-ci.yml
@@ -26,6 +26,8 @@ retrieve-tests-metadata:
- mkdir -p rspec_profiling/
- 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}'
+ - wget -O $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH
+ - '[[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
update-tests-metadata:
extends: .tests-metadata-state
@@ -41,6 +43,9 @@ update-tests-metadata:
- echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH}
- scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_node_*.json
- '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH'
+ - echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}
+ - scripts/merge-reports ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_ee_*node_*.json
+ - '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH'
- rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json
- scripts/merge-reports ${FLAKY_RSPEC_SUITE_REPORT_PATH} rspec_flaky/all_*_*.json
- FLAKY_RSPEC_GENERATE_REPORT=1 scripts/prune-old-flaky-specs ${FLAKY_RSPEC_SUITE_REPORT_PATH}