Skip to content
Snippets Groups Projects
Commit ff2ffb66 authored by GitLab Bot's avatar GitLab Bot
Browse files

Add latest changes from gitlab-org/gitlab@42-42-stable-ee

parent 50d93f8d
No related branches found
No related tags found
No related merge requests found
Showing
with 494 additions and 345 deletions
Loading
@@ -6,6 +6,7 @@
Loading
@@ -6,6 +6,7 @@
# - ./config/initializers/0_inject_enterprise_edition_module.rb # - ./config/initializers/0_inject_enterprise_edition_module.rb
# - ./ee/app/models/license.rb # - ./ee/app/models/license.rb
# - ./lib/gitlab.rb # - ./lib/gitlab.rb
# - ./lib/gitlab/utils.rb
# - ./qa/ # - ./qa/
# - ./INSTALLATION_TYPE # - ./INSTALLATION_TYPE
# - ./VERSION # - ./VERSION
Loading
@@ -49,7 +50,6 @@
Loading
@@ -49,7 +50,6 @@
/lib/flowdock/ /lib/flowdock/
/lib/generators/ /lib/generators/
/lib/gitaly/ /lib/gitaly/
/lib/gitlab/
/lib/api/ /lib/api/
/lib/token/ /lib/token/
/lib/mattermost/ /lib/mattermost/
Loading
Loading
extends: extends:
- '@gitlab' - '@gitlab'
- plugin:promise/recommended
globals: globals:
__webpack_public_path__: true __webpack_public_path__: true
gl: false gl: false
Loading
@@ -10,6 +11,7 @@ plugins:
Loading
@@ -10,6 +11,7 @@ plugins:
- import - import
- "@gitlab/i18n" - "@gitlab/i18n"
- "@gitlab/vue-i18n" - "@gitlab/vue-i18n"
- no-jquery
settings: settings:
import/resolver: import/resolver:
webpack: webpack:
Loading
@@ -36,6 +38,13 @@ rules:
Loading
@@ -36,6 +38,13 @@ rules:
vue/no-use-v-if-with-v-for: off vue/no-use-v-if-with-v-for: off
vue/no-v-html: off vue/no-v-html: off
vue/use-v-on-exact: off vue/use-v-on-exact: off
no-jquery/no-ajax: error
no-jquery/no-ajax-events: error
no-jquery/no-load: error
no-jquery/no-load-shorthand: error
no-jquery/no-serialize: error
promise/always-return: off
promise/no-callback-in-promise: off
overrides: overrides:
files: files:
- '**/spec/**/*' - '**/spec/**/*'
Loading
Loading
VERSION merge=ours VERSION merge=ours
Dangerfile gitlab-language=ruby Dangerfile gitlab-language=ruby
db/schema.rb merge=merge_db_schema
We’re closing our issue tracker on GitHub so we can focus on the GitLab.com project and respond to issues more quickly. We’re closing our issue tracker on GitHub so we can focus on the GitLab.com project and respond to issues more quickly.
   
We encourage you to open an issue on the [GitLab.com issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues). You can log into GitLab.com using your GitHub account. We encourage you to open an issue on the [GitLab.com issue tracker](https://gitlab.com/gitlab-org/gitlab/issues). You can log into GitLab.com using your GitHub account.
Thank you for taking the time to contribute back to GitLab! Thank you for taking the time to contribute back to GitLab!
   
Please open a merge request [on GitLab.com](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests), we look forward to reviewing your contribution! You can log into GitLab.com using your GitHub account. Please open a merge request [on GitLab.com](https://gitlab.com/gitlab-org/gitlab/merge_requests), we look forward to reviewing your contribution! You can log into GitLab.com using your GitHub account.
Loading
@@ -81,3 +81,4 @@ package-lock.json
Loading
@@ -81,3 +81,4 @@ package-lock.json
jsdoc/ jsdoc/
**/tmp/rubocop_cache/** **/tmp/rubocop_cache/**
.overcommit.yml .overcommit.yml
.projections.json
image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33" image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.33"
   
stages: stages:
- sync
- prepare - prepare
- quick-test - quick-test
- test - test
Loading
@@ -14,11 +15,10 @@ variables:
Loading
@@ -14,11 +15,10 @@ variables:
RAILS_ENV: "test" RAILS_ENV: "test"
NODE_ENV: "test" NODE_ENV: "test"
SIMPLECOV: "true" SIMPLECOV: "true"
GIT_DEPTH: "20" GIT_DEPTH: "50"
GIT_SUBMODULE_STRATEGY: "none" GIT_SUBMODULE_STRATEGY: "none"
GET_SOURCES_ATTEMPTS: "3" GET_SOURCES_ATTEMPTS: "3"
KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master.json KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json
EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master-ee.json
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json FLAKY_RSPEC_SUITE_REPORT_PATH: rspec_flaky/report-suite.json
BUILD_ASSETS_IMAGE: "false" BUILD_ASSETS_IMAGE: "false"
ES_JAVA_OPTS: "-Xms256m -Xmx256m" ES_JAVA_OPTS: "-Xms256m -Xmx256m"
Loading
@@ -28,10 +28,10 @@ after_script:
Loading
@@ -28,10 +28,10 @@ after_script:
- date - date
   
include: include:
- local: .gitlab/ci/global.gitlab-ci.yml
- local: .gitlab/ci/cng.gitlab-ci.yml - local: .gitlab/ci/cng.gitlab-ci.yml
- local: .gitlab/ci/docs.gitlab-ci.yml - local: .gitlab/ci/docs.gitlab-ci.yml
- local: .gitlab/ci/frontend.gitlab-ci.yml - local: .gitlab/ci/frontend.gitlab-ci.yml
- local: .gitlab/ci/global.gitlab-ci.yml
- local: .gitlab/ci/memory.gitlab-ci.yml - local: .gitlab/ci/memory.gitlab-ci.yml
- local: .gitlab/ci/pages.gitlab-ci.yml - local: .gitlab/ci/pages.gitlab-ci.yml
- local: .gitlab/ci/qa.gitlab-ci.yml - local: .gitlab/ci/qa.gitlab-ci.yml
Loading
@@ -41,3 +41,4 @@ include:
Loading
@@ -41,3 +41,4 @@ include:
- local: .gitlab/ci/setup.gitlab-ci.yml - local: .gitlab/ci/setup.gitlab-ci.yml
- local: .gitlab/ci/test-metadata.gitlab-ci.yml - local: .gitlab/ci/test-metadata.gitlab-ci.yml
- local: .gitlab/ci/yaml.gitlab-ci.yml - local: .gitlab/ci/yaml.gitlab-ci.yml
- local: .gitlab/ci/releases.gitlab-ci.yml
Loading
@@ -6,8 +6,8 @@
Loading
@@ -6,8 +6,8 @@
/doc/ @axil @marcia @eread @mikelewis /doc/ @axil @marcia @eread @mikelewis
   
# Frontend maintainers should see everything in `app/assets/` # Frontend maintainers should see everything in `app/assets/`
app/assets/ @ClemMakesApps @fatihacet @filipa @mikegreiling @timzallmann @kushalpandya @pslaughter app/assets/ @ClemMakesApps @fatihacet @filipa @mikegreiling @timzallmann @kushalpandya @pslaughter @wortschi @ntepluhina
*.scss @annabeldunstone @ClemMakesApps @fatihacet @filipa @mikegreiling @timzallmann @kushalpandya @pslaughter *.scss @annabeldunstone @ClemMakesApps @fatihacet @filipa @mikegreiling @timzallmann @kushalpandya @pslaughter @wortschi @ntepluhina
   
# Database maintainers should review changes in `db/` # Database maintainers should review changes in `db/`
db/ @gitlab-org/maintainers/database db/ @gitlab-org/maintainers/database
Loading
@@ -23,6 +23,14 @@ lib/gitlab/github_import/ @gitlab-org/maintainers/database
Loading
@@ -23,6 +23,14 @@ lib/gitlab/github_import/ @gitlab-org/maintainers/database
/lib/gitlab/auth/ldap/ @dblessing @mkozono /lib/gitlab/auth/ldap/ @dblessing @mkozono
/lib/gitlab/ci/templates/ @nolith @zj /lib/gitlab/ci/templates/ @nolith @zj
/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah /lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah
/lib/gitlab/ci/templates/Security/ @plafoucriere @gonzoyumo @twoodham /lib/gitlab/ci/templates/Security/ @plafoucriere @gonzoyumo @twoodham @sethgitlab
/ee/app/models/project_alias.rb @patrickbajao /ee/app/models/project_alias.rb @patrickbajao
/ee/lib/api/project_aliases.rb @patrickbajao /ee/lib/api/project_aliases.rb @patrickbajao
# Engineering Productivity owned files
/.gitlab-ci.yml @gl-quality/eng-prod
/.gitlab/ci/ @gl-quality/eng-prod
Dangerfile @gl-quality/eng-prod
/danger/ @gl-quality/eng-prod
/lib/gitlab/danger/ @gl-quality/eng-prod
/scripts/ @gl-quality/eng-prod
Loading
@@ -14,10 +14,10 @@
Loading
@@ -14,10 +14,10 @@
variables: variables:
GIT_STRATEGY: none GIT_STRATEGY: none
environment: environment:
name: review-docs/$CI_COMMIT_REF_SLUG name: review-docs/$DOCS_GITLAB_REPO_SUFFIX-$CI_MERGE_REQUEST_IID
# DOCS_REVIEW_APPS_DOMAIN and DOCS_GITLAB_REPO_SUFFIX are CI variables # DOCS_REVIEW_APPS_DOMAIN and DOCS_GITLAB_REPO_SUFFIX are CI variables
# Discussion: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14236/diffs#note_40140693 # Discussion: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14236/diffs#note_40140693
url: http://$CI_ENVIRONMENT_SLUG.$DOCS_REVIEW_APPS_DOMAIN/$DOCS_GITLAB_REPO_SUFFIX url: http://docs-preview-$DOCS_GITLAB_REPO_SUFFIX-$CI_MERGE_REQUEST_IID.$DOCS_REVIEW_APPS_DOMAIN/$DOCS_GITLAB_REPO_SUFFIX
on_stop: review-docs-cleanup on_stop: review-docs-cleanup
before_script: before_script:
# We don't clone the repo by using GIT_STRATEGY: none and only download the # We don't clone the repo by using GIT_STRATEGY: none and only download the
Loading
@@ -39,7 +39,7 @@ review-docs-deploy:
Loading
@@ -39,7 +39,7 @@ review-docs-deploy:
review-docs-cleanup: review-docs-cleanup:
extends: .review-docs extends: .review-docs
environment: environment:
name: review-docs/$CI_COMMIT_REF_SLUG name: review-docs/$DOCS_GITLAB_REPO_SUFFIX-$CI_MERGE_REQUEST_IID
action: stop action: stop
script: script:
- ./trigger-build-docs cleanup - ./trigger-build-docs cleanup
Loading
@@ -67,3 +67,19 @@ docs lint:
Loading
@@ -67,3 +67,19 @@ docs lint:
- bundle exec nanoc check internal_links - bundle exec nanoc check internal_links
# Check the internal anchor links # Check the internal anchor links
- bundle exec nanoc check internal_anchors - bundle exec nanoc check internal_anchors
graphql-docs-verify:
extends:
- .only-ee
- .default-tags
- .default-retry
- .default-cache
- .default-only
- .default-before_script
- .only-graphql-changes
variables:
SETUP_DB: "false"
stage: test
needs: ["setup-test-env"]
script:
- bundle exec rake gitlab:graphql:check_docs
Loading
@@ -13,7 +13,7 @@
Loading
@@ -13,7 +13,7 @@
- .default-before_script - .default-before_script
- .assets-compile-cache - .assets-compile-cache
- .only-code-qa-changes - .only-code-qa-changes
image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-git-2.22-chrome-73.0-node-12.x-yarn-1.16-graphicsmagick-1.3.33-docker-18.06.1 image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-git-2.22-chrome-73.0-node-12.x-yarn-1.16-graphicsmagick-1.3.33-docker-18.06.1
stage: test stage: test
dependencies: ["setup-test-env"] dependencies: ["setup-test-env"]
needs: ["setup-test-env"] needs: ["setup-test-env"]
Loading
@@ -47,13 +47,13 @@
Loading
@@ -47,13 +47,13 @@
- rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here
only: only:
variables: variables:
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/)/ # Matches the gitlab-org group and its subgroups
- $CI_SERVER_HOST == "dev.gitlab.org" - $CI_SERVER_HOST == "dev.gitlab.org"
tags: tags:
- gitlab-org - gitlab-org
- docker - docker
   
gitlab:assets:compile: gitlab:assets:compile pull-push-cache:
extends: .gitlab:assets:compile-metadata extends: .gitlab:assets:compile-metadata
only: only:
refs: refs:
Loading
@@ -63,9 +63,6 @@ gitlab:assets:compile:
Loading
@@ -63,9 +63,6 @@ gitlab:assets:compile:
   
gitlab:assets:compile pull-cache: gitlab:assets:compile pull-cache:
extends: .gitlab:assets:compile-metadata extends: .gitlab:assets:compile-metadata
except:
refs:
- master
cache: cache:
policy: pull policy: pull
   
Loading
@@ -77,7 +74,7 @@ gitlab:assets:compile pull-cache:
Loading
@@ -77,7 +74,7 @@ gitlab:assets:compile pull-cache:
- .default-before_script - .default-before_script
- .assets-compile-cache - .assets-compile-cache
- .only-code-qa-changes - .only-code-qa-changes
- .use-pg - .use-pg9
stage: prepare stage: prepare
script: script:
- node --version - node --version
Loading
@@ -89,14 +86,14 @@ gitlab:assets:compile pull-cache:
Loading
@@ -89,14 +86,14 @@ gitlab:assets:compile pull-cache:
# we override the max_old_space_size to prevent OOM errors # we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584 NODE_OPTIONS: --max_old_space_size=3584
cache: cache:
key: "assets-compile:test:vendor_ruby:.yarn-cache:tmp_cache_assets_sprockets:v6" key: "assets-compile:v7"
artifacts: artifacts:
expire_in: 7d expire_in: 7d
paths: paths:
- node_modules - node_modules
- public/assets - public/assets
   
compile-assets: compile-assets pull-push-cache:
extends: .compile-assets-metadata extends: .compile-assets-metadata
only: only:
refs: refs:
Loading
@@ -104,13 +101,25 @@ compile-assets:
Loading
@@ -104,13 +101,25 @@ compile-assets:
cache: cache:
policy: pull-push policy: pull-push
   
compile-assets pull-cache: compile-assets pull-push-cache foss:
extends: .compile-assets-metadata extends: [".compile-assets-metadata", ".only-ee-as-if-foss"]
except: only:
refs: refs:
- master - master
cache:
policy: pull-push
key: "assets-compile:v7:foss"
compile-assets pull-cache:
extends: .compile-assets-metadata
cache:
policy: pull
compile-assets pull-cache foss:
extends: [".compile-assets-metadata", ".only-ee-as-if-foss"]
cache: cache:
policy: pull policy: pull
key: "assets-compile:v7:foss"
   
.only-code-frontend-job-base: .only-code-frontend-job-base:
extends: extends:
Loading
@@ -120,10 +129,12 @@ compile-assets pull-cache:
Loading
@@ -120,10 +129,12 @@ compile-assets pull-cache:
- .default-only - .default-only
- .default-before_script - .default-before_script
- .only-code-changes - .only-code-changes
- .use-pg - .use-pg9
dependencies: ["compile-assets", "compile-assets pull-cache", "setup-test-env"] stage: test
needs: ["setup-test-env", "compile-assets pull-cache"]
dependencies: ["setup-test-env", "compile-assets pull-cache"]
   
karma: .karma-base:
extends: .only-code-frontend-job-base extends: .only-code-frontend-job-base
variables: variables:
# we override the max_old_space_size to prevent OOM errors # we override the max_old_space_size to prevent OOM errors
Loading
@@ -134,6 +145,9 @@ karma:
Loading
@@ -134,6 +145,9 @@ karma:
- scripts/gitaly-test-spawn - scripts/gitaly-test-spawn
- date - date
- bundle exec rake karma - bundle exec rake karma
karma:
extends: .karma-base
coverage: '/^Statements *: (\d+\.\d+%)/' coverage: '/^Statements *: (\d+\.\d+%)/'
artifacts: artifacts:
name: coverage-javascript name: coverage-javascript
Loading
@@ -146,7 +160,12 @@ karma:
Loading
@@ -146,7 +160,12 @@ karma:
reports: reports:
junit: junit_karma.xml junit: junit_karma.xml
   
jest: karma-foss:
extends:
- .karma-base
- .only-ee-as-if-foss
.jest-base:
extends: .only-code-frontend-job-base extends: .only-code-frontend-job-base
script: script:
- scripts/gitaly-test-spawn - scripts/gitaly-test-spawn
Loading
@@ -154,6 +173,14 @@ jest:
Loading
@@ -154,6 +173,14 @@ jest:
- bundle exec rake frontend:fixtures - bundle exec rake frontend:fixtures
- date - date
- yarn jest --ci --coverage - yarn jest --ci --coverage
cache:
key: jest
paths:
- tmp/jest/jest/
policy: pull-push
jest:
extends: .jest-base
artifacts: artifacts:
name: coverage-frontend name: coverage-frontend
expire_in: 31d expire_in: 31d
Loading
@@ -164,34 +191,13 @@ jest:
Loading
@@ -164,34 +191,13 @@ jest:
- tmp/tests/frontend/ - tmp/tests/frontend/
reports: reports:
junit: junit_jest.xml junit: junit_jest.xml
cache:
key: jest
paths:
- tmp/jest/jest/
policy: pull-push
   
.qa-job-base: jest-foss:
extends: extends:
- .default-tags - .jest-base
- .default-retry - .only-ee-as-if-foss
- .default-cache cache:
- .default-only policy: pull
- .only-code-qa-changes
dependencies: []
stage: test
before_script:
- cd qa/
- bundle install
qa:internal:
extends: .qa-job-base
script:
- bundle exec rspec
qa:selectors:
extends: .qa-job-base
script:
- bundle exec bin/qa Test::Sanity::Selectors
   
.qa-frontend-node: .qa-frontend-node:
extends: extends:
Loading
@@ -200,6 +206,7 @@ qa:selectors:
Loading
@@ -200,6 +206,7 @@ qa:selectors:
- .default-cache - .default-cache
- .default-only - .default-only
- .only-code-changes - .only-code-changes
stage: test
dependencies: [] dependencies: []
cache: cache:
key: "$CI_JOB_NAME" key: "$CI_JOB_NAME"
Loading
@@ -232,7 +239,9 @@ webpack-dev-server:
Loading
@@ -232,7 +239,9 @@ webpack-dev-server:
- .default-cache - .default-cache
- .default-only - .default-only
- .only-code-changes - .only-code-changes
dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"] stage: test
needs: ["setup-test-env", "compile-assets pull-cache"]
dependencies: ["setup-test-env", "compile-assets pull-cache"]
variables: variables:
WEBPACK_MEMORY_TEST: "true" WEBPACK_MEMORY_TEST: "true"
script: script:
Loading
Loading
Loading
@@ -13,6 +13,8 @@
Loading
@@ -13,6 +13,8 @@
.default-before_script: .default-before_script:
before_script: before_script:
- date - date
- export GOPATH=$CI_PROJECT_DIR/.go
- mkdir -p $GOPATH
- source scripts/utils.sh - source scripts/utils.sh
- source scripts/prepare_build.sh - source scripts/prepare_build.sh
- date - date
Loading
@@ -22,6 +24,7 @@
Loading
@@ -22,6 +24,7 @@
cache: cache:
key: "debian-stretch-ruby-2.6.3-node-12.x" key: "debian-stretch-ruby-2.6.3-node-12.x"
paths: paths:
- .go/pkg/mod
- vendor/ruby - vendor/ruby
- .yarn-cache/ - .yarn-cache/
- vendor/gitaly-ruby - vendor/gitaly-ruby
Loading
@@ -33,6 +36,7 @@
Loading
@@ -33,6 +36,7 @@
- master - master
- /^[\d-]+-stable(-ee)?$/ - /^[\d-]+-stable(-ee)?$/
- /^\d+-\d+-auto-deploy-\d+$/ - /^\d+-\d+-auto-deploy-\d+$/
- /^security\//
- merge_requests - merge_requests
- tags - tags
   
Loading
@@ -51,7 +55,7 @@
Loading
@@ -51,7 +55,7 @@
- "{babel.config,jest.config}.js" - "{babel.config,jest.config}.js"
- "config.ru" - "config.ru"
- "{package.json,yarn.lock}" - "{package.json,yarn.lock}"
- "{app,bin,config,danger,db,ee,fixtures,haml_lint,lib,public,rubocop,scripts,spec,symbol,vendor}/**/*" - "{app,bin,config,danger,db,ee,fixtures,haml_lint,lib,locale,public,rubocop,scripts,spec,symbol,vendor}/**/*"
- "doc/README.md" # Some RSpec test rely on this file - "doc/README.md" # Some RSpec test rely on this file
   
.only-qa-changes: .only-qa-changes:
Loading
@@ -67,6 +71,12 @@
Loading
@@ -67,6 +71,12 @@
- "doc/**/*" - "doc/**/*"
- ".markdownlint.json" - ".markdownlint.json"
   
.only-graphql-changes:
only:
changes:
- "{,ee/}app/graphql/**/*"
- "{,ee/}lib/gitlab/graphql/**/*"
.only-code-qa-changes: .only-code-qa-changes:
only: only:
changes: changes:
Loading
@@ -82,7 +92,7 @@
Loading
@@ -82,7 +92,7 @@
- "{babel.config,jest.config}.js" - "{babel.config,jest.config}.js"
- "config.ru" - "config.ru"
- "{package.json,yarn.lock}" - "{package.json,yarn.lock}"
- "{app,bin,config,danger,db,ee,fixtures,haml_lint,lib,public,rubocop,scripts,spec,symbol,vendor}/**/*" - "{app,bin,config,danger,db,ee,fixtures,haml_lint,lib,locale,public,rubocop,scripts,spec,symbol,vendor}/**/*"
- "doc/README.md" # Some RSpec test rely on this file - "doc/README.md" # Some RSpec test rely on this file
- ".dockerignore" - ".dockerignore"
- "qa/**/*" - "qa/**/*"
Loading
@@ -96,30 +106,57 @@
Loading
@@ -96,30 +106,57 @@
refs: refs:
- master - master
- /^\d+-\d+-auto-deploy-\d+$/ - /^\d+-\d+-auto-deploy-\d+$/
- /^[\d-]+-stable(-ee)?$/
   
.only-review-schedules: .only-review-schedules:
only: only:
refs: refs:
- schedules - schedules
variables: variables:
- $REVIEW_APP_CLEANUP && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
kubernetes: active kubernetes: active
   
.use-pg: .only-canonical-schedules:
only:
refs:
- schedules@gitlab-org/gitlab
- schedules@gitlab-org/gitlab-foss
.use-pg9:
services:
- name: postgres:9.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:alpine
.use-pg10:
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33"
services: services:
- name: postgres:9.6.14 - name: postgres:10.9
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:alpine - name: redis:alpine
   
.use-pg-10: .use-pg9-ee:
image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33" 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
.use-pg10-ee:
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.22-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.33"
services: services:
- name: postgres:10.9 - name: postgres:10.9
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:alpine - name: redis:alpine
- name: docker.elastic.co/elasticsearch/elasticsearch:5.6.12
   
.only-ee: .only-ee:
only: only:
variables: variables:
- $CI_PROJECT_NAME == "gitlab-ee" - $CI_PROJECT_NAME == "gitlab"
- $CI_PROJECT_NAME == "gitlab" # New name of gitlab-ee after the single codebase migration - $CI_PROJECT_NAME == "gitlab-ee" # Support former project name for forks/mirrors
.only-ee-as-if-foss:
extends: .only-ee
variables:
FOSS_ONLY: '1'
Loading
@@ -36,7 +36,7 @@ memory-static:
Loading
@@ -36,7 +36,7 @@ memory-static:
memory-on-boot: memory-on-boot:
extends: extends:
- .only-code-memory-job-base - .only-code-memory-job-base
- .use-pg-10 - .use-pg10
variables: variables:
NODE_ENV: "production" NODE_ENV: "production"
RAILS_ENV: "production" RAILS_ENV: "production"
Loading
Loading
Loading
@@ -11,7 +11,7 @@ pages:
Loading
@@ -11,7 +11,7 @@ pages:
variables: variables:
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"
stage: pages stage: pages
dependencies: ["coverage", "karma", "gitlab:assets:compile"] dependencies: ["coverage", "karma", "gitlab:assets:compile pull-cache"]
script: script:
- mv public/ .public/ - mv public/ .public/
- mkdir public/ - mkdir public/
Loading
Loading
.qa-job-base:
extends:
- .default-tags
- .default-retry
- .default-only
- .only-code-qa-changes
stage: test
dependencies: []
cache:
key: "qa-framework-jobs:v1"
paths:
- vendor/ruby
before_script:
- cd qa/
- bundle install --clean --jobs=$(nproc) --path=vendor --retry=3 --quiet
- bundle check
qa:internal:
extends: .qa-job-base
script:
- bundle exec rspec
qa:selectors:
extends: .qa-job-base
script:
- bundle exec bin/qa Test::Sanity::Selectors
qa:selectors-foss:
extends:
- qa:selectors
- .only-ee-as-if-foss
.package-and-qa-base: .package-and-qa-base:
extends: .default-only extends: .default-only
image: ruby:2.6-alpine image: ruby:2.6-alpine
stage: qa stage: qa
dependencies: [] dependencies: []
variables:
GIT_DEPTH: "1"
retry: 0 retry: 0
script: script:
- source scripts/utils.sh - source scripts/utils.sh
Loading
@@ -12,7 +42,7 @@
Loading
@@ -12,7 +42,7 @@
- ./scripts/trigger-build omnibus - ./scripts/trigger-build omnibus
only: only:
variables: variables:
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/)/ # Matches the gitlab-org group or its subgroups
   
package-and-qa-manual: package-and-qa-manual:
extends: extends:
Loading
@@ -21,20 +51,10 @@ package-and-qa-manual:
Loading
@@ -21,20 +51,10 @@ package-and-qa-manual:
except: except:
refs: refs:
- master - master
- /^\d+-\d+-auto-deploy-\d+$/
when: manual when: manual
needs: ["build-qa-image", "gitlab:assets:compile pull-cache"] needs: ["build-qa-image", "gitlab:assets:compile pull-cache"]
   
package-and-qa-manual:master:
extends:
- .package-and-qa-base
- .only-code-qa-changes
only:
refs:
- master@gitlab-org/gitlab-foss
- master@gitlab-org/gitlab
when: manual
needs: ["build-qa-image", "gitlab:assets:compile"]
package-and-qa: package-and-qa:
extends: extends:
- .package-and-qa-base - .package-and-qa-base
Loading
@@ -42,5 +62,13 @@ package-and-qa:
Loading
@@ -42,5 +62,13 @@ package-and-qa:
except: except:
refs: refs:
- master - master
- /^\d+-\d+-auto-deploy-\d+$/
needs: ["build-qa-image", "gitlab:assets:compile pull-cache"] needs: ["build-qa-image", "gitlab:assets:compile pull-cache"]
allow_failure: true allow_failure: true
schedule:package-and-qa:
extends:
- .package-and-qa-base
- .only-code-qa-changes
- .only-canonical-schedules
needs: ["build-qa-image", "gitlab:assets:compile pull-cache"]
Loading
@@ -33,31 +33,31 @@
Loading
@@ -33,31 +33,31 @@
- .default-before_script - .default-before_script
- .only-code-qa-changes - .only-code-qa-changes
   
setup-test-env:
extends:
- .only-code-qa-rails-job-base
- .use-pg9
stage: prepare
script:
- bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
- scripts/gitaly-test-build # Do not use 'bundle exec' here
artifacts:
expire_in: 7d
paths:
- tmp/tests
- config/secrets.yml
- vendor/gitaly-ruby
cache:
policy: pull-push
.rspec-base: .rspec-base:
extends: .only-code-rails-job-base extends: .only-code-rails-job-base
stage: test stage: test
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache"]
dependencies: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache"]
script: script:
- JOB_NAME=( $CI_JOB_NAME ) - source scripts/rspec_helpers.sh
- TEST_TOOL=${JOB_NAME[0]} - rspec_paralellized_job "--tag ~quarantine --tag ~geo"
- TEST_LEVEL=${JOB_NAME[1]}
- DATABASE=${JOB_NAME[2]}
- export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
- export KNAPSACK_GENERATE_REPORT=true KNAPSACK_LOG_LEVEL=debug KNAPSACK_TEST_DIR=spec
- export SUITE_FLAKY_RSPEC_REPORT_PATH=${FLAKY_RSPEC_SUITE_REPORT_PATH}
- export FLAKY_RSPEC_REPORT_PATH=rspec_flaky/all_${TEST_TOOL}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
- export NEW_FLAKY_RSPEC_REPORT_PATH=rspec_flaky/new_${TEST_TOOL}_${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}
- '[[ -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
- date
- 'export KNAPSACK_TEST_FILE_PATTERN=$(ruby -r./lib/quality/test_level.rb -e "puts Quality::TestLevel.new.pattern(:${TEST_LEVEL})")'
- mkdir -p tmp/memory_test
- export MEMORY_TEST_PATH="tmp/memory_test/${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
artifacts: artifacts:
expire_in: 31d expire_in: 31d
when: always when: always
Loading
@@ -71,79 +71,172 @@
Loading
@@ -71,79 +71,172 @@
reports: reports:
junit: junit_rspec.xml junit: junit_rspec.xml
   
.rspec-base-pg: .rspec-base-foss:
extends: [".rspec-base", ".only-ee-as-if-foss"]
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache foss"]
dependencies: ["setup-test-env", "retrieve-tests-metadata", "compile-assets pull-cache foss"]
.rspec-base-pg9:
extends: extends:
- .rspec-base - .rspec-base
- .use-pg - .use-pg9
   
.rspec-base-pg-10: .rspec-base-pg9-foss:
extends: extends:
- .rspec-base - .rspec-base-foss
- .use-pg-10 - .use-pg9
   
setup-test-env: .rspec-base-pg10:
extends: extends:
- .only-code-qa-rails-job-base - .rspec-base
- .use-pg - .use-pg10
stage: prepare - .only-master
script:
- bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init' rspec unit pg9:
- scripts/gitaly-test-build # Do not use 'bundle exec' here extends: .rspec-base-pg9
artifacts: parallel: 20
expire_in: 7d
paths:
- tmp/tests
- config/secrets.yml
- vendor/gitaly-ruby
   
rspec unit pg: rspec unit pg9-foss:
extends: .rspec-base-pg extends: .rspec-base-pg9-foss
parallel: 20 parallel: 20
   
rspec integration pg: rspec integration pg9:
extends: .rspec-base-pg extends: .rspec-base-pg9
parallel: 6
rspec integration pg9-foss:
extends: .rspec-base-pg9-foss
parallel: 6 parallel: 6
   
rspec system pg: rspec system pg9:
extends: .rspec-base-pg extends: .rspec-base-pg9
parallel: 24 parallel: 24
   
rspec unit pg-10: rspec system pg9-foss:
extends: .rspec-base-pg9-foss
parallel: 24
rspec unit pg10:
extends: .rspec-base-pg10
parallel: 20
rspec integration pg10:
extends: .rspec-base-pg10
parallel: 6
rspec system pg10:
extends: .rspec-base-pg10
parallel: 24
.rspec-ee-base-pg9:
extends:
- .rspec-base
- .only-ee
- .use-pg9-ee
.rspec-ee-base-pg10:
extends: extends:
- .rspec-base-pg-10 - .rspec-base
- .only-ee
- .use-pg10-ee
rspec-ee unit pg9:
extends: .rspec-ee-base-pg9
parallel: 7
rspec-ee integration pg9:
extends: .rspec-ee-base-pg9
parallel: 3
rspec-ee system pg9:
extends: .rspec-ee-base-pg9
parallel: 5
rspec-ee unit pg10:
extends:
- .rspec-ee-base-pg10
- .only-master - .only-master
parallel: 20 parallel: 7
   
rspec integration pg-10: rspec-ee integration pg10:
extends: extends:
- .rspec-base-pg-10 - .rspec-ee-base-pg10
- .only-master - .only-master
parallel: 6 parallel: 3
   
rspec system pg-10: rspec-ee system pg10:
extends: extends:
- .rspec-base-pg-10 - .rspec-ee-base-pg10
- .only-master - .only-master
parallel: 24 parallel: 5
   
rspec-fast-spec-helper: .rspec-ee-base-geo:
extends: .rspec-base-pg extends:
- .rspec-base
- .only-ee
script: script:
- bundle exec rspec spec/fast_spec_helper.rb - source scripts/rspec_helpers.sh
- scripts/prepare_postgres_fdw.sh
- rspec_paralellized_job "--tag ~quarantine --tag geo"
.rspec-ee-base-geo-pg9:
extends:
- .rspec-ee-base-geo
- .use-pg9-ee
   
rspec quarantine pg: .rspec-ee-base-geo-pg10:
extends: extends:
- .rspec-base-pg - .rspec-ee-base-geo
- .use-pg10-ee
rspec-ee unit pg9 geo:
extends: .rspec-ee-base-geo-pg9
parallel: 2
rspec-ee integration pg9 geo:
extends: .rspec-ee-base-geo-pg9
rspec-ee system pg9 geo:
extends: .rspec-ee-base-geo-pg9
rspec-ee unit pg10 geo:
extends: .rspec-ee-base-geo-pg10
parallel: 2
rspec-ee integration pg10 geo:
extends: .rspec-ee-base-geo-pg10
rspec-ee system pg10 geo:
extends: .rspec-ee-base-geo-pg10
rspec quarantine pg9:
extends:
- .rspec-base-pg9
- .only-master - .only-master
variables:
RSPEC_OPTS: "--tag quarantine -- spec/"
script: script:
- export NO_KNAPSACK=1 CACHE_CLASSES=true - source scripts/rspec_helpers.sh
- scripts/gitaly-test-spawn - rspec_simple_job "${RSPEC_OPTS}"
- bin/rspec --color --format documentation --tag quarantine -- spec/
allow_failure: true allow_failure: true
   
rspec-ee quarantine pg9:
extends:
- rspec quarantine pg9
- .only-ee
variables:
RSPEC_OPTS: "--tag quarantine -- ee/spec/"
rspec fast_spec_helper:
extends: .rspec-base-pg9
script:
- bin/rspec spec/fast_spec_helper.rb
static-analysis: static-analysis:
extends: .only-code-qa-rails-job-base extends: .only-code-qa-rails-job-base
dependencies: ["setup-test-env", "compile-assets", "compile-assets pull-cache"] stage: test
needs: ["setup-test-env", "compile-assets pull-cache"]
dependencies: ["setup-test-env", "compile-assets pull-cache"]
variables: variables:
SETUP_DB: "false" SETUP_DB: "false"
script: script:
Loading
@@ -166,16 +259,16 @@ downtime_check:
Loading
@@ -166,16 +259,16 @@ downtime_check:
variables: variables:
- $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/ - $CI_COMMIT_REF_NAME =~ /^[\d-]+-stable(-ee)?$/
stage: test stage: test
dependencies: ["setup-test-env"]
needs: ["setup-test-env"] needs: ["setup-test-env"]
dependencies: ["setup-test-env"]
   
.db-job-base: .db-job-base:
extends: extends:
- .only-code-rails-job-base - .only-code-rails-job-base
- .use-pg - .use-pg9
stage: test stage: test
dependencies: ["setup-test-env"]
needs: ["setup-test-env"] needs: ["setup-test-env"]
dependencies: ["setup-test-env"]
   
# DB migration, rollback, and seed jobs # DB migration, rollback, and seed jobs
db:migrate:reset: db:migrate:reset:
Loading
@@ -256,108 +349,6 @@ coverage:
Loading
@@ -256,108 +349,6 @@ coverage:
- coverage/assets/ - coverage/assets/
- tmp/memory_test/ - tmp/memory_test/
   
## EE-specific content
.rspec-base-ee:
extends:
- .rspec-base
- .only-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-geo:
extends: .rspec-base-ee
parallel: 3
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-geo
- .use-pg
except:
variables:
- $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
rspec geo pg-10 ee:
extends:
- .rspec-base-geo
- .use-pg-10
except:
variables:
- $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
quick-rspec geo pg ee:
extends:
- .rspec-base-geo
- .use-pg
stage: quick-test
only:
variables:
- $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
quick-rspec geo pg-10 ee:
extends:
- .rspec-base-geo
- .use-pg-10
stage: quick-test
only:
variables:
- $CI_COMMIT_REF_NAME =~ /(^geo[\/-].*|.*-geo$)/
rspec quarantine pg ee:
extends:
- rspec quarantine pg
- .only-ee
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/
db:rollback geo: db:rollback geo:
extends: extends:
- db:rollback - db:rollback
Loading
@@ -365,5 +356,3 @@ db:rollback geo:
Loading
@@ -365,5 +356,3 @@ db:rollback geo:
script: script:
- bundle exec rake geo:db:migrate VERSION=20170627195211 - bundle exec rake geo:db:migrate VERSION=20170627195211
- bundle exec rake geo:db:migrate - bundle exec rake geo:db:migrate
## END of EE-specific content
---
# Syncs any changes pushed to a stable branch to the corresponding CE stable
# branch. We run this prior to any tests so that random failures don't prevent a
# sync.
sync-stable-branch:
# We don't need/want any global before/after commands, so we overwrite these
# settings.
image: alpine:edge
stage: sync
# This job should only run on EE stable branches on the canonical GitLab.com
# repository.
only:
variables:
- $CI_SERVER_HOST == "gitlab.com"
refs:
- /^[\d-]+-stable-ee$/@gitlab-org/gitlab
before_script:
- apk add --no-cache --update curl bash
after_script: []
script:
- bash scripts/sync-stable-branch.sh
Loading
@@ -44,6 +44,8 @@ code_quality:
Loading
@@ -44,6 +44,8 @@ code_quality:
# We need to duplicate this job's definition because it seems it's impossible to # We need to duplicate this job's definition because it seems it's impossible to
# override an included `only.refs`. # override an included `only.refs`.
# See https://gitlab.com/gitlab-org/gitlab/issues/31371. # See https://gitlab.com/gitlab-org/gitlab/issues/31371.
# Once https://gitlab.com/gitlab-org/gitlab/merge_requests/16487 will be deployed
# to GitLab.com, we should be able to use the template and set SAST_DISABLE_DIND: "true".
sast: sast:
extends: extends:
- .default-retry - .default-retry
Loading
@@ -196,6 +198,7 @@ dast:
Loading
@@ -196,6 +198,7 @@ dast:
- .only-code-qa-changes - .only-code-qa-changes
- .only-review - .only-review
stage: qa stage: qa
needs: ["review-deploy"]
dependencies: ["review-deploy"] dependencies: ["review-deploy"]
before_script: before_script:
- export DAST_WEBSITE="$(cat review_app_url.txt)" - export DAST_WEBSITE="$(cat review_app_url.txt)"
Loading
Loading
.review-base: .except-deploys:
extends: except:
- .default-tags refs:
- .default-retry - /^\d+-\d+-auto-deploy-\d+$/
- .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
   
.review-docker: .review-docker:
extends: extends:
- .default-tags - .default-tags
- .default-retry - .default-retry
- .default-only - .default-only
- .except-deploys
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-qa-alpine
services: services:
- docker:19.03.0-dind - docker:19.03.0-dind
Loading
@@ -41,10 +35,31 @@ build-qa-image:
Loading
@@ -41,10 +35,31 @@ build-qa-image:
- echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY} - echo "${CI_JOB_TOKEN}" | docker login --username gitlab-ci-token --password-stdin ${CI_REGISTRY}
- time docker push ${QA_IMAGE} - 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: .review-build-cng-base:
extends: extends:
- .default-only - .default-only
- .only-code-qa-changes - .only-code-qa-changes
- .except-deploys
image: ruby:2.6-alpine image: ruby:2.6-alpine
stage: review-prepare stage: review-prepare
before_script: before_script:
Loading
@@ -65,16 +80,26 @@ schedule:review-build-cng:
Loading
@@ -65,16 +80,26 @@ schedule:review-build-cng:
extends: extends:
- .review-build-cng-base - .review-build-cng-base
- .only-review-schedules - .only-review-schedules
needs: ["gitlab:assets:compile"] needs: ["gitlab:assets:compile pull-cache"]
   
.review-deploy-base: .review-deploy-base:
extends: .review-base extends:
allow_failure: true - .default-tags
- .default-retry
- .default-only
- .only-code-qa-changes
- .except-deploys
stage: review stage: review
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-charts-build-base
dependencies: []
allow_failure: true
variables: variables:
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
GITLAB_HELM_CHART_REF: "master" # v2.3.7 + some stability improvements not yet released:
# - sidekiq readinessProbe should be `pgrep -f sidekiq`: https://gitlab.com/gitlab-org/charts/gitlab/merge_requests/991
# - Allows livenessProbe and readinessProbe to be configured for unicorn: https://gitlab.com/gitlab-org/charts/gitlab/merge_requests/985
GITLAB_HELM_CHART_REF: "df7c52dc69df441909880b8f2fd15e938cdb2047"
GITLAB_EDITION: "ce" GITLAB_EDITION: "ce"
environment: environment:
name: review/${CI_COMMIT_REF_NAME} name: review/${CI_COMMIT_REF_NAME}
Loading
@@ -90,13 +115,21 @@ schedule:review-build-cng:
Loading
@@ -90,13 +115,21 @@ schedule:review-build-cng:
- install_api_client_dependencies_with_apk - install_api_client_dependencies_with_apk
- source scripts/review_apps/review-apps.sh - source scripts/review_apps/review-apps.sh
script: script:
- date
- check_kube_domain - check_kube_domain
- date
- ensure_namespace - ensure_namespace
- date
- install_tiller - install_tiller
- date
- install_external_dns - install_external_dns
- date
- download_chart - download_chart
- date
- deploy || (display_deployment_debug && exit 1) - deploy || (display_deployment_debug && exit 1)
- date
- add_license - add_license
- date
artifacts: artifacts:
paths: [review_app_url.txt] paths: [review_app_url.txt]
expire_in: 2 days expire_in: 2 days
Loading
@@ -105,6 +138,7 @@ schedule:review-build-cng:
Loading
@@ -105,6 +138,7 @@ schedule:review-build-cng:
review-deploy: review-deploy:
extends: extends:
- .review-deploy-base - .review-deploy-base
- .only-review
needs: ["review-build-cng"] needs: ["review-build-cng"]
   
schedule:review-deploy: schedule:review-deploy:
Loading
@@ -148,6 +182,7 @@ review-cleanup-failed-deployment:
Loading
@@ -148,6 +182,7 @@ review-cleanup-failed-deployment:
- .only-review - .only-review
- .only-code-qa-changes - .only-code-qa-changes
stage: qa stage: qa
allow_failure: true
variables: variables:
QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa" QA_ARTIFACTS_DIR: "${CI_PROJECT_DIR}/qa"
QA_CAN_TEST_GIT_PROTOCOL_V2: "false" QA_CAN_TEST_GIT_PROTOCOL_V2: "false"
Loading
@@ -158,6 +193,7 @@ review-cleanup-failed-deployment:
Loading
@@ -158,6 +193,7 @@ review-cleanup-failed-deployment:
GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}" GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}" GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}"
EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}" EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}"
needs: ["review-deploy"]
dependencies: ["review-deploy"] dependencies: ["review-deploy"]
artifacts: artifacts:
paths: paths:
Loading
@@ -176,53 +212,46 @@ review-cleanup-failed-deployment:
Loading
@@ -176,53 +212,46 @@ review-cleanup-failed-deployment:
   
review-qa-smoke: review-qa-smoke:
extends: .review-qa-base extends: .review-qa-base
allow_failure: true
script: script:
- gitlab-qa Test::Instance::Smoke "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}" - gitlab-qa Test::Instance::Smoke "${QA_IMAGE}" "${CI_ENVIRONMENT_URL}"
   
review-qa-all: review-qa-all:
extends: .review-qa-base extends: .review-qa-base
allow_failure: true
when: manual when: manual
parallel: 5 parallel: 5
script: 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 - 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 - 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: extends:
- .default-tags - .review-docker
- .default-only
- .only-code-qa-changes - .only-code-qa-changes
- .only-review stage: qa
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 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: artifacts:
when: always
paths: paths:
- qa/report-new.html - sitespeed-results/
- qa/gitlab-qa-run-*
reports: reports:
junit: qa/gitlab-qa-run-*/**/rspec-*.xml performance: performance.json
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
   
review-performance: review-performance:
extends: .review-qa-base extends:
allow_failure: true - .review-performance-base
- .only-review
needs: ["review-deploy"]
dependencies: ["review-deploy"]
before_script: before_script:
- export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)" - export CI_ENVIRONMENT_URL="$(cat review_app_url.txt)"
- echo "${CI_ENVIRONMENT_URL}" - echo "${CI_ENVIRONMENT_URL}"
Loading
@@ -241,24 +270,41 @@ review-performance:
Loading
@@ -241,24 +270,41 @@ review-performance:
   
schedule:review-performance: schedule:review-performance:
extends: extends:
- review-performance - .review-performance-base
- .only-review-schedules - .only-review-schedules
needs: ["schedule:review-deploy"]
dependencies: ["schedule:review-deploy"] dependencies: ["schedule:review-deploy"]
   
schedule:review-cleanup: parallel-spec-reports:
extends: extends:
- .review-base - .default-tags
- .only-review-schedules - .default-only
stage: prepare - .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 allow_failure: true
environment: when: manual
name: review/auto-cleanup artifacts:
action: stop when: always
before_script: paths:
- source scripts/utils.sh - qa/report-new.html
- install_gitlab_gem - qa/gitlab-qa-run-*
reports:
junit: qa/gitlab-qa-run-*/**/rspec-*.xml
script: 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: danger-review:
extends: extends:
Loading
Loading
Loading
@@ -43,5 +43,6 @@ no_ee_check:
Loading
@@ -43,5 +43,6 @@ no_ee_check:
- scripts/no-ee-check - scripts/no-ee-check
only: only:
variables: variables:
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAME == "gitlab-foss" - $CI_PROJECT_NAME == "gitlab-foss"
- $CI_SERVER_HOST == "dev.gitlab.org" && $CI_PROJECT_NAME == "gitlabhq" - $CI_PROJECT_NAME == "gitlab-ce" # Support former project name for forks/mirrors
- $CI_PROJECT_NAME == "gitlabhq" # Support former project name for dev
.tests-metadata-state: .tests-metadata-state:
extends: extends:
- .default-only - .default-only
- .only-code-changes
variables: variables:
TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache" TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache"
before_script: before_script:
- source scripts/utils.sh - source scripts/utils.sh
cache:
key: tests_metadata
paths:
- knapsack/
- rspec_flaky/
artifacts: artifacts:
expire_in: 31d expire_in: 31d
paths: paths:
Loading
@@ -13,55 +19,29 @@
Loading
@@ -13,55 +19,29 @@
- rspec_profiling/ - rspec_profiling/
   
retrieve-tests-metadata: retrieve-tests-metadata:
extends: extends: .tests-metadata-state
- .tests-metadata-state
- .only-code-changes
stage: prepare stage: prepare
cache: cache:
key: tests_metadata
policy: pull policy: pull
script: script:
- mkdir -p knapsack/${CI_PROJECT_NAME}/ - source scripts/rspec_helpers.sh
- wget -O $KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${TESTS_METADATA_S3_BUCKET}.s3.amazonaws.com/$KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $KNAPSACK_RSPEC_SUITE_REPORT_PATH - retrieve_tests_metadata
- '[[ -f $KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
- mkdir -p rspec_flaky/
- 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}'
- '[[ ! -d "ee/" ]] || 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'
- '[[ ! -d "ee/" ]] || [[ -f $EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
   
update-tests-metadata: update-tests-metadata:
extends: extends: .tests-metadata-state
- .tests-metadata-state
- .only-code-changes
stage: post-test stage: post-test
cache: cache:
key: tests_metadata
paths:
- knapsack/
- rspec_flaky/
policy: push policy: push
script: script:
- retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document - retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document
- echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} - source scripts/rspec_helpers.sh
- scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_node_*.json - update_tests_metadata
- '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH'
- '[[ ! -d "ee/" ]] || echo "{}" > ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
- '[[ ! -d "ee/" ]] || scripts/merge-reports ${EE_KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_*_pg_ee_*node_*.json'
- '[[ ! -d "ee/" ]] || [[ -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}
- '[[ -z ${TESTS_METADATA_S3_BUCKET} ]] || scripts/sync-reports put $TESTS_METADATA_S3_BUCKET $FLAKY_RSPEC_SUITE_REPORT_PATH'
- rm -f rspec_flaky/all_*.json rspec_flaky/new_*.json
- scripts/insert-rspec-profiling-data
only: only:
refs: refs:
- master - schedules
variables: variables:
- $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" # Only update the Knapsack metadata on GitLab.com/gitlab-org/gitlab
- $CI_SERVER_HOST == "dev.gitlab.org" - $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab"
   
flaky-examples-check: flaky-examples-check:
extends: extends:
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment