Merge branch 'improve-codequality-job' into 'master'

Simplify the codequality job

See merge request gitlab-org/gitlab-ee!4602
This commit is contained in:
Grzegorz Bizon 2018-02-21 09:48:56 +00:00 committed by Rémy Coutable
parent 6d2a5f044f
commit 5ccd3bec95
3 changed files with 29 additions and 11 deletions

View File

@ -15,7 +15,7 @@ engines:
enabled: false
rubocop:
enabled: true
channel: "gitlab-rubocop-0-52"
channel: "gitlab-rubocop-0-52-1"
ratings:
paths:
- Gemfile.lock

View File

@ -607,22 +607,22 @@ karma:
codequality:
<<: *except-docs
<<: *pull-cache
before_script: []
image: docker:latest
stage: test
variables:
SETUP_DB: "false"
DOCKER_DRIVER: overlay
image: docker:latest
before_script: []
services:
- docker:dind
variables:
SETUP_DB: "false"
DOCKER_DRIVER: overlay2
CODECLIMATE_FORMAT: json
cache: {}
dependencies: []
script:
- cp .rubocop.yml .rubocop.yml.bak
- grep -v "rubocop-gitlab-security" .rubocop.yml.bak > .rubocop.yml
- docker run --env CODECLIMATE_CODE="$PWD" --volume "$PWD":/code --volume /var/run/docker.sock:/var/run/docker.sock --volume /tmp/cc:/tmp/cc dev.gitlab.org:5005/gitlab/gitlab-build-images:gitlab-codeclimate-v2 analyze -f json > raw_codeclimate.json
- cat raw_codeclimate.json | docker run -i stedolan/jq -c 'map({check_name,fingerprint,location})' > codeclimate.json
- mv .rubocop.yml.bak .rubocop.yml
- ./scripts/codequality analyze -f json > codeclimate.json || true
artifacts:
paths: [codeclimate.json]
expire_in: 1 week
sast:
<<: *except-docs

18
scripts/codequality Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
set -eo pipefail
code_path=$(pwd)
# docker run --tty will merge stderr and stdout, we don't need this on CI or
# it will break codequality json file
[ "$CI" != "" ] || docker_tty="--tty"
docker pull dev.gitlab.org:5005/gitlab/gitlab-build-images:gitlab-codeclimate-rubocop-0-52-1 > /dev/null
docker tag dev.gitlab.org:5005/gitlab/gitlab-build-images:gitlab-codeclimate-rubocop-0-52-1 codeclimate/codeclimate-rubocop:gitlab-codeclimate-rubocop-0-52-1 > /dev/null
exec docker run --rm $docker_tty --env CODECLIMATE_CODE="$code_path" \
--volume "$code_path":/code \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp/cc:/tmp/cc \
"codeclimate/codeclimate:${CODECLIMATE_VERSION:-0.71.1}" "$@"