60 lines
2 KiB
YAML
60 lines
2 KiB
YAML
code_quality:
|
|
stage: test
|
|
image: docker:20.10.12
|
|
allow_failure: true
|
|
services:
|
|
- name: 'docker:20.10.12-dind'
|
|
command: ['--tls=false', '--host=tcp://0.0.0.0:2375']
|
|
variables:
|
|
DOCKER_DRIVER: overlay2
|
|
DOCKER_TLS_CERTDIR: ""
|
|
CODE_QUALITY_IMAGE: "$CI_TEMPLATE_REGISTRY_HOST/gitlab-org/ci-cd/codequality:0.87.0"
|
|
needs: []
|
|
script:
|
|
- export SOURCE_CODE=$PWD
|
|
- |
|
|
if ! docker info &>/dev/null; then
|
|
if [ -z "$DOCKER_HOST" ] && [ -n "$KUBERNETES_PORT" ]; then
|
|
export DOCKER_HOST='tcp://localhost:2375'
|
|
fi
|
|
fi
|
|
- | # this is required to avoid undesirable reset of Docker image ENV variables being set on build stage
|
|
function propagate_env_vars() {
|
|
CURRENT_ENV=$(printenv)
|
|
|
|
for VAR_NAME; do
|
|
echo $CURRENT_ENV | grep "${VAR_NAME}=" > /dev/null && echo "--env $VAR_NAME "
|
|
done
|
|
}
|
|
- |
|
|
if [ -n "$CODECLIMATE_REGISTRY_USERNAME" ] && [ -n "$CODECLIMATE_REGISTRY_PASSWORD" ] && [ -n "$CODECLIMATE_PREFIX" ]; then
|
|
CODECLIMATE_REGISTRY=${CODECLIMATE_PREFIX%%/*}
|
|
docker login "$CODECLIMATE_REGISTRY" --username "$CODECLIMATE_REGISTRY_USERNAME" --password "$CODECLIMATE_REGISTRY_PASSWORD"
|
|
fi
|
|
- docker pull --quiet "$CODE_QUALITY_IMAGE"
|
|
- |
|
|
docker run --rm \
|
|
$(propagate_env_vars \
|
|
SOURCE_CODE \
|
|
TIMEOUT_SECONDS \
|
|
CODECLIMATE_DEBUG \
|
|
CODECLIMATE_DEV \
|
|
REPORT_STDOUT \
|
|
REPORT_FORMAT \
|
|
ENGINE_MEMORY_LIMIT_BYTES \
|
|
CODECLIMATE_PREFIX \
|
|
CODECLIMATE_REGISTRY_USERNAME \
|
|
CODECLIMATE_REGISTRY_PASSWORD \
|
|
) \
|
|
--volume "$PWD":/code \
|
|
--volume /var/run/docker.sock:/var/run/docker.sock \
|
|
"$CODE_QUALITY_IMAGE" /code
|
|
artifacts:
|
|
reports:
|
|
codequality: gl-code-quality-report.json
|
|
expire_in: 1 week
|
|
dependencies: []
|
|
rules:
|
|
- if: '$CODE_QUALITY_DISABLED'
|
|
when: never
|
|
- if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
|