37707ac59e
CSS style guide Working towards what was discussed in #13552, this adds the [SCSS Linter gem](https://github.com/brigade/scss-lint) for style guide conformity in CI. TODO: - [x] Agree on and write SCSS Style Guide Documentation. - [x] Document the `scss-lint` config file. - [x] Figure out how best to run this in CI, right now it's taking longer than I would think it should. - [x] Use CSSComb for auto-correction (Maybe just include a CSSComb config file and have developers run the node package manually if they're interested in using it?). My logic for not using CSSComb in the first place is that, AFAIK, we don't currently require Node/NPM, even in the dev environment. Maybe I'm wrong about that? `scss-lint` is a Ruby implementation of a similar concept, but it doesn't include autocorrect. Is there a way we can run get GitLab CI to run `scss-lint` without having to put together the full GitLab application? Seeing as it's just static analysis, it seems like a waste of time/resources. /cc @jschatz1 @rspeicher See merge request !3069
319 lines
5.6 KiB
YAML
319 lines
5.6 KiB
YAML
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:
|
|
- source ./scripts/prepare_build.sh
|
|
- ruby -v
|
|
- which ruby
|
|
- retry gem install bundler --no-ri --no-rdoc
|
|
- cp config/gitlab.yml.example config/gitlab.yml
|
|
- touch log/application.log
|
|
- touch log/test.log
|
|
- 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
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
spec:api:
|
|
stage: test
|
|
script:
|
|
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
spec:models:
|
|
stage: test
|
|
script:
|
|
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:models
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
spec:lib:
|
|
stage: test
|
|
script:
|
|
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:lib
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
spec:services:
|
|
stage: test
|
|
script:
|
|
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:services
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
spec:other:
|
|
stage: test
|
|
script:
|
|
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other
|
|
tags:
|
|
- ruby
|
|
- 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:
|
|
- ruby
|
|
- 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:
|
|
- ruby
|
|
- mysql
|
|
|
|
flog:
|
|
stage: test
|
|
script:
|
|
- bundle exec rake flog
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
flay:
|
|
stage: test
|
|
script:
|
|
- bundle exec rake flay
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
bundler:audit:
|
|
stage: test
|
|
only:
|
|
- master
|
|
script:
|
|
- "bundle exec bundle-audit update"
|
|
- "bundle exec bundle-audit check --ignore OSVDB-115941"
|
|
tags:
|
|
- ruby
|
|
- mysql
|
|
|
|
# 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
|