# yamllint disable rule:line-length --- # YAML Linting [https://yamllint.readthedocs.io/en/latest/] yamllint: stage: lint image: registry.gitlab.com/pipeline-components/yamllint:latest tags: - docker rules: - if: "$CODE_QUALITY_DISABLED" when: never - if: "$CI_COMMIT_TAG || $CI_COMMIT_BRANCH" script: - yamllint . # JSON Linting [https://github.com/zaach/jsonlint] jsonlint: stage: lint image: registry.gitlab.com/pipeline-components/jsonlint:latest tags: - docker rules: - if: "$CODE_QUALITY_DISABLED" when: never - if: "$CI_COMMIT_TAG || $CI_COMMIT_BRANCH" script: - | find . -not -path './.git/*' -name '*.json' -type f -print0 | parallel --will-cite -k -0 -n1 jsonlint -q # Code Format Checking [https://black.readthedocs.io/en/stable/] black: stage: lint image: registry.gitlab.com/pipeline-components/black:latest tags: - docker rules: - if: "$CODE_QUALITY_DISABLED" when: never - if: "$CI_COMMIT_TAG || $CI_COMMIT_BRANCH" script: - black --check --verbose -- . # Code Climate/Quality Checking [https://pylint.pycqa.org/en/latest/] pylint: stage: lint image: registry.gitlab.com/pipeline-components/pylint:latest tags: - docker rules: - if: "$CODE_QUALITY_DISABLED" when: never - if: "$CI_COMMIT_TAG || $CI_COMMIT_BRANCH" script: - pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate:codeclimate.json $(find -type f -name "*.py" ! -path "**/.venv/**" ! -path "**/app/migrations/**") artifacts: reports: codequality: codeclimate.json when: always