diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 194 |
1 files changed, 105 insertions, 89 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0d70eae0d1e..2595d0bbe1b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.5-golang-1.9-git-2.18-chrome-69.0-node-8.x-yarn-1.2-postgresql-9.6-graphicsmagick-1.3.29" +image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-golang-1.9-git-2.18-chrome-69.0-node-10.x-yarn-1.12-postgresql-9.6-graphicsmagick-1.3.29" .dedicated-runner: &dedicated-runner retry: 1 @@ -6,7 +6,7 @@ image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.4.5-golang-1.9-git - gitlab-org .default-cache: &default-cache - key: "ruby-2.4.5-debian-stretch-with-yarn" + key: "debian-stretch-ruby-2.5.3-node-10.x" paths: - vendor/ruby - .yarn-cache/ @@ -75,15 +75,17 @@ stages: - mysql:5.7 - redis:alpine -.rails5: &rails5 - allow_failure: true - only: +.rails4: &rails4 + allow_failure: false + except: variables: - - $CI_COMMIT_REF_NAME =~ /rails5/ - - $RAILS5_ENABLED + - $CI_COMMIT_REF_NAME =~ /(^docs[\/-].*|.*-docs$)/ + - $CI_COMMIT_REF_NAME =~ /(^qa[\/-].*|.*-qa$)/ + - $CI_COMMIT_REF_NAME =~ /norails4/ + - $RAILS5_DISABLED variables: - BUNDLE_GEMFILE: "Gemfile.rails5" - RAILS5: "true" + BUNDLE_GEMFILE: "Gemfile.rails4" + RAILS5: "false" # Skip all jobs except the ones that begin with 'docs/'. # Used for commits including ONLY documentation changes. @@ -121,7 +123,7 @@ stages: <<: *except-docs-and-qa .single-script-job: &single-script-job - image: ruby:2.4-alpine + image: ruby:2.5-alpine stage: test cache: {} dependencies: [] @@ -177,17 +179,17 @@ stages: <<: *rspec-metadata <<: *use-pg -.rspec-metadata-pg-rails5: &rspec-metadata-pg-rails5 +.rspec-metadata-pg-rails4: &rspec-metadata-pg-rails4 <<: *rspec-metadata-pg - <<: *rails5 + <<: *rails4 .rspec-metadata-mysql: &rspec-metadata-mysql <<: *rspec-metadata <<: *use-mysql -.rspec-metadata-mysql-rails5: &rspec-metadata-mysql-rails5 +.rspec-metadata-mysql-rails4: &rspec-metadata-mysql-rails4 <<: *rspec-metadata-mysql - <<: *rails5 + <<: *rails4 .only-canonical-masters: &only-canonical-masters only: @@ -227,6 +229,8 @@ stages: script: - git fetch https://gitlab.com/gitlab-org/gitlab-ce.git v9.3.0 - git checkout -f FETCH_HEAD + - sed -i "s/gem 'oj', '~> 2.17.4'//" Gemfile + - bundle update google-protobuf grpc - bundle install $BUNDLE_INSTALL_FLAGS - date - cp config/gitlab.yml.example config/gitlab.yml @@ -316,9 +320,10 @@ review-docs-cleanup: # Trigger a docker image build in CNG (Cloud Native GitLab) repository # cloud-native-image: - image: ruby:2.4-alpine + image: ruby:2.5-alpine before_script: [] - stage: test + dependencies: [] + stage: post-test allow_failure: true variables: GIT_DEPTH: "1" @@ -368,7 +373,7 @@ update-tests-metadata: flaky-examples-check: <<: *dedicated-runner - image: ruby:2.4-alpine + image: ruby:2.5-alpine services: [] before_script: [] variables: @@ -426,7 +431,7 @@ setup-test-env: script: - bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init' - scripts/gitaly-test-build # Do not use 'bundle exec' here - - BUNDLE_GEMFILE=Gemfile.rails5 bundle install $BUNDLE_INSTALL_FLAGS + - BUNDLE_GEMFILE=Gemfile.rails4 bundle install $BUNDLE_INSTALL_FLAGS artifacts: expire_in: 7d paths: @@ -518,67 +523,67 @@ rspec-mysql 27 30: *rspec-metadata-mysql rspec-mysql 28 30: *rspec-metadata-mysql rspec-mysql 29 30: *rspec-metadata-mysql -rspec-pg-rails5 0 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 1 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 2 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 3 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 4 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 5 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 6 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 7 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 8 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 9 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 10 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 11 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 12 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 13 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 14 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 15 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 16 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 17 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 18 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 19 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 20 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 21 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 22 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 23 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 24 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 25 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 26 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 27 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 28 30: *rspec-metadata-pg-rails5 -rspec-pg-rails5 29 30: *rspec-metadata-pg-rails5 - -rspec-mysql-rails5 0 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 1 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 2 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 3 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 4 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 5 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 6 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 7 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 8 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 9 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 10 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 11 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 12 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 13 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 14 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 15 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 16 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 17 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 18 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 19 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 20 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 21 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 22 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 23 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 24 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 25 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 26 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 27 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 28 30: *rspec-metadata-mysql-rails5 -rspec-mysql-rails5 29 30: *rspec-metadata-mysql-rails5 +rspec-pg-rails4 0 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 1 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 2 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 3 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 4 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 5 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 6 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 7 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 8 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 9 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 10 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 11 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 12 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 13 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 14 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 15 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 16 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 17 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 18 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 19 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 20 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 21 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 22 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 23 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 24 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 25 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 26 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 27 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 28 30: *rspec-metadata-pg-rails4 +rspec-pg-rails4 29 30: *rspec-metadata-pg-rails4 + +rspec-mysql-rails4 0 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 1 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 2 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 3 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 4 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 5 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 6 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 7 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 8 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 9 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 10 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 11 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 12 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 13 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 14 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 15 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 16 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 17 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 18 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 19 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 20 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 21 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 22 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 23 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 24 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 25 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 26 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 27 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 28 30: *rspec-metadata-mysql-rails4 +rspec-mysql-rails4 29 30: *rspec-metadata-mysql-rails4 static-analysis: <<: *dedicated-no-docs-no-db-pull-cache-job @@ -588,7 +593,7 @@ static-analysis: script: - scripts/static-analysis cache: - key: "ruby-2.4.5-debian-stretch-with-yarn-and-rubocop" + key: "debian-stretch-ruby-2.5.3-node-10.x-and-rubocop" paths: - vendor/ruby - .yarn-cache/ @@ -624,14 +629,15 @@ downtime_check: - /(^docs[\/-].*|.*-docs$)/ - /(^qa[\/-].*|.*-qa$)/ -rails5_gemfile_lock_check: +rails4_gemfile_lock_check: <<: *dedicated-no-docs-no-db-pull-cache-job <<: *except-docs-and-qa script: - - scripts/rails5-gemfile-lock-check + - scripts/rails4-gemfile-lock-check ee_compat_check: <<: *rake-exec + dependencies: [] except: - master - tags @@ -694,7 +700,10 @@ gitlab:setup-mysql: # Frontend-related jobs gitlab:assets:compile: <<: *dedicated-no-docs-and-no-qa-pull-cache-job + image: dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.5.3-git-2.18-chrome-69.0-node-8.x-yarn-1.2-graphicsmagick-1.3.29-docker-18.06.1 dependencies: [] + services: + - docker:stable-dind variables: NODE_ENV: "production" RAILS_ENV: "production" @@ -703,18 +712,23 @@ gitlab:assets:compile: WEBPACK_REPORT: "true" # we override the max_old_space_size to prevent OOM errors NODE_OPTIONS: --max_old_space_size=3584 + DOCKER_DRIVER: overlay2 + DOCKER_HOST: tcp://docker:2375 script: - date - yarn install --frozen-lockfile --production --cache-folder .yarn-cache - date - free -m - bundle exec rake gitlab:assets:compile + - scripts/build_assets_image artifacts: name: webpack-report expire_in: 31d paths: - webpack-report/ - public/assets/ + tags: + - docker karma: <<: *dedicated-no-docs-pull-cache-job @@ -766,7 +780,8 @@ code_quality: --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code artifacts: - paths: [gl-code-quality-report.json] + reports: + codequality: gl-code-quality-report.json expire_in: 1 week sast: @@ -790,7 +805,8 @@ sast: --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code artifacts: - paths: [gl-sast-report.json] + reports: + sast: gl-sast-report.json dependency_scanning: <<: *dedicated-no-docs-no-db-pull-cache-job @@ -812,7 +828,8 @@ dependency_scanning: --volume /var/run/docker.sock:/var/run/docker.sock "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$SP_VERSION" /code artifacts: - paths: [gl-dependency-scanning-report.json] + reports: + dependency_scanning: gl-dependency-scanning-report.json qa:internal: <<: *dedicated-no-docs-no-db-pull-cache-job @@ -852,9 +869,7 @@ coverage: lint:javascript:report: <<: *dedicated-no-docs-and-no-qa-pull-cache-job stage: post-test - dependencies: - - compile-assets - - setup-test-env + dependencies: [] before_script: [] script: - date @@ -908,6 +923,7 @@ gitlab_git_test: variables: SETUP_DB: "false" before_script: [] + dependencies: [] cache: {} script: - spec/support/prepare-gitlab-git-test-for-commit --check-for-changes @@ -918,6 +934,7 @@ no_ee_check: variables: SETUP_DB: "false" before_script: [] + dependencies: [] cache: {} script: - scripts/no-ee-check @@ -946,7 +963,6 @@ review: - download_gitlab_chart - ensure_namespace - install_tiller - - create_secret - install_external_dns - deploy environment: |