diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 224 |
1 files changed, 208 insertions, 16 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c23a7a3bf0e..2ad63548d78 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,16 +1,37 @@ -# This file is generated by GitLab CI +image: "ruby:2.1" + +services: + - mysql:latest + - postgres:latest + - redis:latest + +cache: + key: "ruby21" + paths: + - vendor + +variables: + MYSQL_ALLOW_EMPTY_PASSWORD: "1" + # retry tests only in CI environment + RSPEC_RETRY_RETRY_COUNT: "3" + before_script: - - ./scripts/prepare_build.sh + - source ./scripts/prepare_build.sh - ruby -v - which ruby - - gem install bundler --no-ri --no-rdoc + - retry gem install bundler --no-ri --no-rdoc - cp config/gitlab.yml.example config/gitlab.yml - touch log/application.log - touch log/test.log - - bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}" - - bundle exec rake db:reset db:create RAILS_ENV=test + - retry bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}" + - RAILS_ENV=test bundle exec rake db:drop db:create db:schema:load db:migrate + +stages: +- test +- notifications spec:feature: + stage: test script: - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature @@ -19,6 +40,7 @@ spec:feature: - mysql spec:api: + stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api tags: @@ -26,6 +48,7 @@ spec:api: - mysql spec:models: + stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models tags: @@ -33,6 +56,7 @@ spec:models: - mysql spec:lib: + stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib tags: @@ -40,21 +64,15 @@ spec:lib: - mysql spec:services: + stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services tags: - ruby - mysql -spec:benchmark: - script: - - RAILS_ENV=test bundle exec rake spec:benchmark - tags: - - ruby - - mysql - allow_failure: true - spec:other: + stage: test script: - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other tags: @@ -62,27 +80,34 @@ spec:other: - mysql spinach:project:half: + stage: test script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half tags: - ruby - mysql spinach:project:rest: + stage: test script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest tags: - ruby - mysql spinach:other: + stage: test script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other tags: - ruby - mysql teaspoon: + stage: test script: - RAILS_ENV=test bundle exec teaspoon tags: @@ -90,13 +115,23 @@ teaspoon: - mysql rubocop: + stage: test script: - bundle exec rubocop tags: - ruby - mysql +scss-lint: + stage: test + script: + - bundle exec rake scss_lint + tags: + - ruby + allow_failure: true + brakeman: + stage: test script: - bundle exec rake brakeman tags: @@ -104,6 +139,7 @@ brakeman: - mysql flog: + stage: test script: - bundle exec rake flog tags: @@ -111,6 +147,7 @@ flog: - mysql flay: + stage: test script: - bundle exec rake flay tags: @@ -118,10 +155,165 @@ flay: - mysql bundler:audit: - script: + stage: test + only: + - master + script: - "bundle exec bundle-audit update" - - "bundle exec bundle-audit check" + - "bundle exec bundle-audit check --ignore OSVDB-115941" tags: - ruby - mysql - allow_failure: true + +# Ruby 2.2 jobs + +spec:feature:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spec:api:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spec:models:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spec:lib:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spec:services:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spec:other:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spinach:project:half:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:half + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spinach:project:rest:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project:rest + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + +spinach:other:ruby22: + stage: test + image: ruby:2.2 + only: + - master + script: + - RAILS_ENV=test bundle exec rake assets:precompile 2>/dev/null + - RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other + cache: + key: "ruby22" + paths: + - vendor + tags: + - ruby + - mysql + + +notify:slack: + stage: notifications + 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 + only: + - master@gitlab-org/gitlab-ce + - tags@gitlab-org/gitlab-ce + - master@gitlab-org/gitlab-ee + - tags@gitlab-org/gitlab-ee |