workflow: rules: - if: $CI_COMMIT_BRANCH =~ /^topic\/.*/ && $CI_PIPELINE_SOURCE == "push" when: never - when: always stages: - preparation - check - test javascript: stage: preparation image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/node:15 cache: paths: - .npm/ script: - npm install --cache .npm --prefer-offline - npx gulp artifacts: paths: - static/js/ expire_in: 1 week .check: stage: check image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/tryton/ci check-flake8: extends: .check script: - flake8 check-isort: extends: .check script: - isort -c . check-jinja: extends: .check before_script: - pip install djlint script: djlint -e jinja templates rules: - changes: - templates/**/*.jinja test: stage: test image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/python:3.9 variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" cache: paths: - .cache/pip before_script: - pip install -r requirements.txt -r requirements-test.txt script: - coverage run --omit=*/tests/* -m xmlrunner discover -v --output-file junit.xml - coverage report - coverage xml coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' artifacts: reports: junit: junit.xml coverage_report: coverage_format: cobertura path: coverage.xml