.flake8_template: stage: build before_script: ${PYTHON_VERSION} -m pip -q install flake8 script: - find . -type f -executable ! -name "*.*" -exec awk ' /^#!.*python/{print FILENAME} {nextfile}' {} + > /tmp/python_files # python files with no extension but with shebang - find . -type f -name "*.py" >> /tmp/python_files - sort /tmp/python_files | uniq | xargs ${PYTHON_VERSION} -m flake8 --max-line-length 120 --statistics --show-source .flake8_extended_template: extends: .flake8_template stage: .post before_script: - ${PYTHON_VERSION} -m pip install flake8 flake8-isort flake8-builtins flake8-eradicate flake8-functions-names flake8-return flake8-functions allow_failure: true .security_template: stage: .post before_script: - ${PYTHON_VERSION} -m pip install bandit script: - bandit -r . allow_failure: true .py3_template: image: python:3-alpine variables: PYTHON_VERSION: python3 .py2_template: image: python:2-alpine variables: PYTHON_VERSION: python2 .py3-flake8: extends: - .flake8_template - .py3_template .py2-flake8: extends: - .flake8_template - .py2_template .py3-flake8_extended: extends: - .flake8_extended_template - .py3_template .py3-security: extends: - .security_template - .py3_template