Skip to content
Snippets Groups Projects
.gitlab-ci.yml 7.29 KiB
include:
  - file: python3-lint-needs.gitlab-ci.yaml
    project: xcg/ci-templates
  - file: python-package.gitlab-ci.yaml
    project: xcg/ci-templates
  - file: docker-build.gitlab-ci.yaml
    project: xcg/ci-templates
  - file: deploy-doc.gitlab-ci.yaml
    project: xcg/ci-templates
  - file: prettier.gitlab-ci.yaml
    project: xcg/ci-templates
  - file: yamllint.gitlab-ci.yaml
    project: xcg/ci-templates
  - template: "Workflows/Branch-Pipelines.gitlab-ci.yml"

variables:
  HTML_DOC_SOURCES: doc/_build/html
  DOCKER_IMAGE: quay.orus.io/xcgd/odoo_scripts
  # do not use $TEMP_IMAGE_BASENAME, it will not be correctly replaced by GitLab
  TEMP_IMAGE: quay.orus.io/xcgd/odoo_scripts:hg-${CI_COMMIT_HG_SHA}

yamllint:
  needs: []
  rules:
    - if: $CI_COMMIT_TAG == null

prettier:
  needs: []
  rules:
    - if: $CI_COMMIT_TAG == null

# build a temporary image for doc and tests
build-docker-image:
  needs: []
  stage: build
  variables:
    TAG_COMMIT_REF_SLUG: "no"
    TAG_COMMIT_SHA: "yes"
    TAG_BRANCH: "no"

pylint:
  needs:
    - job: build-docker-image
  image: $TEMP_IMAGE
  variables:
    PYLINT_FILES: odoo_scripts doc tests
  rules:
    - if: $CI_COMMIT_TAG == null

mypy:
  needs:
    - job: build-docker-image
  image: $TEMP_IMAGE
  script:
    - python3 -m pip install mypy types-PyYAML types-psycopg2 types-python-dateutil
      types-requests build twine ".[docker]"
    - mypy odoo_scripts tests
  rules:
    - if: $CI_COMMIT_TAG == null

unittest:
  needs: []
  stage: test
  image: quay.orus.io/xcg/multi-python
  script:
    - tox --workdir=.cache/tox --parallel all -e
      py36,py37,py38,py39,py310,py311,py312,coverage-report,coverage-xml
  artifacts:
    when: always
    reports: