--- # https://wily.readthedocs.io/en/latest/ # this job uses `wily diff` to provide code # quality/complexity metrics for python projects # you can use it to evaluate progress while refactoring a project... # or to evaluate complexity/maintainability changes introduced by a MR # yamllint disable rule:line-length .python:wily: stage: test image: registry.gitlab.com/notno/python-tests variables: CHECK_PATH: "./${PYTHON_PACKAGE}" EXTRA_PATHS: "" EXTRA_ARGS: "" DEFAULT_OPTIONS: "-c --detail" EXTRA_OPTIONS: "" # Add --all to show the metrics of all files DEFAULT_METRICS: "--metrics maintainability.rank,maintainability.mi,halstead.effort,cyclomatic.complexity,raw.loc,raw.single_comments" EXTRA_METRICS: "" # Start with a comma, and leave no comma between metrics GIT_STRATEGY: clone GIT_CHECKOUT: "false" script: - echo "Preparing environment" - git fetch 1>/dev/null 2>&1 - git checkout ${CI_COMMIT_REF_NAME} 1>/dev/null 2>&1 - wily build ${CHECK_PATH} 1>/dev/null 2>&1 - | wily ${EXTRA_ARGS} diff ${DEFAULT_OPTIONS} ${EXTRA_OPTIONS} ${CHECK_PATH} ${EXTRA_PATHS} -r HEAD^1 ${DEFAULT_METRICS}${EXTRA_METRICS} > wily_head-1_compared if [ -s wily_head-1_compared ]; then echo "Comparison between your current commit and the previous commit:" cat wily_head-1_compared else echo "No difference in metrics compared to the previous commit." fi - | wily ${EXTRA_ARGS} diff ${DEFAULT_OPTIONS} ${EXTRA_OPTIONS} ${CHECK_PATH} ${EXTRA_PATHS} -r origin/master ${DEFAULT_METRICS}${EXTRA_METRICS} > wily_master_compared if [ -s wily_master_compared ]; then echo "Comparison between your current commit and the master branch:" cat wily_master_compared else echo "No difference in metrics compared to master." fi rules: - if: $CI_COMMIT_TAG when: never - when: always needs: [] python:wily: extends: .python:wily