summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml204
1 files changed, 66 insertions, 138 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 85bf783ace6..d8d8557a465 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -32,16 +32,7 @@ stages:
- post-test
- notifications
-precompile:
- stage: prepare
- services: []
- variables:
- USE_DB: "false"
- script:
- - bundle exec rake assets:precompile
- artifacts:
- paths:
- - public/assets/
+# Prepare and merge knapsack tests
.knapsack_state: &knapsack_state
services: []
@@ -56,20 +47,6 @@ precompile:
paths:
- knapsack/
-.knapsack: &knapsack
- stage: test
- script:
- - JOB_NAME=( $CI_BUILD_NAME )
- - export CI_NODE_INDEX=${JOB_NAME[1]}
- - export CI_NODE_TOTAL=${JOB_NAME[2]}
- - export KNAPSACK_REPORT_PATH=knapsack/${JOB_NAME}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
- - export KNAPSACK_GENERATE_REPORT=true
- - cp knapsack/${JOB_NAME}_report.json ${KNAPSACK_REPORT_PATH}
- - knapsack ${JOB_NAME[0]}
- artifacts:
- paths:
- - knapsack/
-
knapsack:
<<: *knapsack_state
stage: prepare
@@ -86,10 +63,22 @@ update-knapsack:
- scripts/merge-reports knapsack/spinach_report.json knapsack/spinach_node_*.json
- rm -f knapsack/*_node_*.json
-.exec: &exec
+# Execute all testing suites
+
+.knapsack: &knapsack
stage: test
script:
- - bundle exec $CI_BUILD_NAME
+ - bundle exec rake assets:precompile 2>/dev/null
+ - JOB_NAME=( $CI_BUILD_NAME )
+ - export CI_NODE_INDEX=${JOB_NAME[1]}
+ - export CI_NODE_TOTAL=${JOB_NAME[2]}
+ - export KNAPSACK_REPORT_PATH=knapsack/${JOB_NAME}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
+ - export KNAPSACK_GENERATE_REPORT=true
+ - cp knapsack/${JOB_NAME}_report.json ${KNAPSACK_REPORT_PATH}
+ - knapsack ${JOB_NAME[0]}
+ artifacts:
+ paths:
+ - knapsack/
rspec 0 20: *knapsack
rspec 1 20: *knapsack
@@ -123,137 +112,76 @@ spinach 7 10: *knapsack
spinach 8 10: *knapsack
spinach 9 10: *knapsack
-teaspoon: *exec
-rubocop: *exec
-rake scss_lint: *exec
-rake brakeman: *exec
-rake flog: *exec
-rake flay: *exec
-rake db:migrate:reset: *exec
+# Execute all testing suites against Ruby 2.2
-bundler:audit:
- stage: test
+.knapsack-ruby22: &knapsack-ruby22
+ <<: *knapsack
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.2
only:
- master
- script:
- - "bundle exec bundle-audit check --update --ignore OSVDB-115941"
-
-# Ruby 2.2 jobs
-
-spec:feature:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake assets:precompile 2>/dev/null
- - bundle exec rake spec:feature
- cache:
- key: "ruby22"
- paths:
- - vendor
-
-spec:api:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake spec:api
cache:
key: "ruby22"
paths:
- vendor
-spec:models:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake spec:models
- cache:
- key: "ruby22"
- paths:
- - vendor
-
-spec:lib:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake spec:lib
- cache:
- key: "ruby22"
- paths:
- - vendor
+rspec 0 20 ruby22: *knapsack-ruby22
+rspec 1 20 ruby22: *knapsack-ruby22
+rspec 2 20 ruby22: *knapsack-ruby22
+rspec 3 20 ruby22: *knapsack-ruby22
+rspec 4 20 ruby22: *knapsack-ruby22
+rspec 5 20 ruby22: *knapsack-ruby22
+rspec 6 20 ruby22: *knapsack-ruby22
+rspec 7 20 ruby22: *knapsack-ruby22
+rspec 8 20 ruby22: *knapsack-ruby22
+rspec 9 20 ruby22: *knapsack-ruby22
+rspec 10 20 ruby22: *knapsack-ruby22
+rspec 11 20 ruby22: *knapsack-ruby22
+rspec 12 20 ruby22: *knapsack-ruby22
+rspec 13 20 ruby22: *knapsack-ruby22
+rspec 14 20 ruby22: *knapsack-ruby22
+rspec 15 20 ruby22: *knapsack-ruby22
+rspec 16 20 ruby22: *knapsack-ruby22
+rspec 17 20 ruby22: *knapsack-ruby22
+rspec 18 20 ruby22: *knapsack-ruby22
+rspec 19 20 ruby22: *knapsack-ruby22
+
+spinach 0 10 ruby22: *knapsack-ruby22
+spinach 1 10 ruby22: *knapsack-ruby22
+spinach 2 10 ruby22: *knapsack-ruby22
+spinach 3 10 ruby22: *knapsack-ruby22
+spinach 4 10 ruby22: *knapsack-ruby22
+spinach 5 10 ruby22: *knapsack-ruby22
+spinach 6 10 ruby22: *knapsack-ruby22
+spinach 7 10 ruby22: *knapsack-ruby22
+spinach 8 10 ruby22: *knapsack-ruby22
+spinach 9 10 ruby22: *knapsack-ruby22
+
+# Other generic tests
-spec:services:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake spec:services
- cache:
- key: "ruby22"
- paths:
- - vendor
-
-spec:other:ruby22:
+.exec: &exec
stage: test
- image: ruby:2.2
- only:
- - master
script:
- - bundle exec rake spec:other
- cache:
- key: "ruby22"
- paths:
- - vendor
+ - bundle exec $CI_BUILD_NAME
-spinach:project:half:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake assets:precompile 2>/dev/null
- - bundle exec rake spinach:project:half
- cache:
- key: "ruby22"
- paths:
- - vendor
+teaspoon: *exec
+rubocop: *exec
+rake scss_lint: *exec
+rake brakeman: *exec
+rake flog: *exec
+rake flay: *exec
+rake db:migrate:reset: *exec
-spinach:project:rest:ruby22:
+bundler:audit:
stage: test
- image: ruby:2.2
only:
- - master
+ - master
script:
- - bundle exec rake assets:precompile 2>/dev/null
- - bundle exec rake spinach:project:rest
- cache:
- key: "ruby22"
- paths:
- - vendor
+ - "bundle exec bundle-audit check --update --ignore OSVDB-115941"
-spinach:other:ruby22:
- stage: test
- image: ruby:2.2
- only:
- - master
- script:
- - bundle exec rake assets:precompile 2>/dev/null
- - bundle exec rake spinach:other
- cache:
- key: "ruby22"
- paths:
- - vendor
+# Notify slack in the end
notify:slack:
- stage: notifications
+ stage: post-test
script:
- ./scripts/notify_slack.sh "#builds" "Build on \`$CI_BUILD_REF_NAME\` failed! Commit \`$(git log -1 --oneline)\` See <https://gitlab.com/gitlab-org/$(basename "$PWD")/commit/"$CI_BUILD_REF"/builds>"
when: on_failure