Newer
Older
- file: python3-lint-needs.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

Vincent Hatakeyama
committed
HTML_DOC_SOURCES: doc/_build/html
# do not use $TEMP_IMAGE_BASENAME, it will not be correctly replaced by GitLab

Vincent Hatakeyama
committed
TEMP_IMAGE: quay.orus.io/xcgd/odoo_scripts:hg-${CI_COMMIT_HG_SHA}

Vincent Hatakeyama
committed
TAG_COMMIT_SHA: "yes"
pylint:
needs:
- job: build-docker-image
image: $TEMP_IMAGE
variables:
PYLINT_FILES: odoo_scripts doc tests
unittest:
needs: []
stage: test
image: fkrull/multi-python
script:
- tox --workdir=.cache/tox --parallel all -e py36,py37,py38,py39,coverage-report,coverage-xml
artifacts:
when: always
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
coverage: "/TOTAL.+ ([0-9]{1,3}%)/"
cache:
paths:
- .cache
variables:
PIP_CACHE_DIR: $CI_PROJECT_DIR/.cache/pip
unittest-py310:
extends: unittest
image: python:3.10-alpine
script:
- apk add git
- python3 -m pip install tox
- tox --workdir=.cache/tox -e py310,coverage-report,coverage-xml
import_jsonrpc_odoo11_test:
stage: test
- name: postgres:12-alpine
command: ["-c", "fsync=off"]
alias: db
variables:
POSTGRES_USER: odoo
POSTGRES_HOST_AUTH_METHOD: trust
ODOO_ADDONS_PATH: ""
__PIP_EXTRA_OPTS: "--system"
# install modules
- $CI_PROJECT_DIR/start --db_host=db -d test_setup --max-cron-threads=0 --without-demo=all --data-dir /var/lib/odoo --init base --stop-after-init
# install current version as this is the one tested, not the one in the image
- python3 -m pip install --disable-pip-version-check --no-cache-dir $__PIP_EXTRA_OPTS --upgrade $CI_PROJECT_DIR
# restart odoo with installed modules and use it in background
- $CI_PROJECT_DIR/start --db_host=db -d test_setup --max-cron-threads=0 --data-dir /var/lib/odoo &
- sleep 3
# then test the setup files
- import_jsonrpc -v --host localhost --password admin -d test_setup --protocol jsonrpc -p 8069 --directory tests/import
- import_jsonrpc -v --host localhost --password admin -d test_setup --protocol jsonrpc -p 8069 --file tests/context_import/res.company.csv --context test=value
- import_jsonrpc -v --host localhost --password admin -d test_setup --protocol jsonrpc -p 8069 --directory tests/import_emptyyaml --delimiter ";"
- import_sql -v --host postgres --user odoo --database test_setup --directory tests/import_sql
# clean up background process
- pkill --echo --full /usr/bin/python3
- pkill --echo --full zsh
import_base_import_odoo11_test:
extends: import_jsonrpc_odoo11_test
script:
# restart odoo with installed modules and use it in background
- $CI_PROJECT_DIR/start --db_host=db -d test_setup --max-cron-threads=0 --data-dir /var/lib/odoo &
- sleep 3
# then test the setup files
- import_base_import -v --host localhost --password admin -d test_setup --protocol jsonrpc -p 8069 --directory tests/import
- import_sql -vv --host postgres --user odoo --database test_setup --directory tests/import_sql
# clean up background process
- pkill --echo --full /usr/bin/python3
- pkill --echo --full zsh
import_jsonrpc_odoo13_test:
extends: import_jsonrpc_odoo11_test
image:
name: quay.orus.io/odoo/odoo:13.0
entrypoint: [""]
variables:
ODOO_TYPE: odoo13
import_jsonrpc_odoo15_test:
extends: import_jsonrpc_odoo11_test
image:
entrypoint: [""]
variables:
ODOO_TYPE: odoo15
__PIP_EXTRA_OPTS: ""
docker_build_copy_test:
needs:
- job: build-docker-image
stage: test
image: $TEMP_IMAGE
build-documentation:
# done in test stage to be able to use the built image
stage: test
needs:
- job: build-docker-image
image: $TEMP_IMAGE
artifacts:
paths:
- doc/_build
expire_in: 10m
script:
- cd doc

Vincent Hatakeyama
committed
- pip3 install -r requirements hg-evolve
- for language in en fr ; do make LANGUAGE=$language BUILDDIRSUFFIX=/$CI_COMMIT_HG_BRANCH html ; done

Vincent Hatakeyama
committed
publish_documentation:
needs:
- job: build-documentation
artifacts: true
only:
publish:
extends: build-docker-image
stage: deploy
needs:
- job: docker_build_copy_test
- job: import_jsonrpc_odoo11_test
- job: import_jsonrpc_odoo13_test
- job: import_base_import_odoo11_test
- job: unittest
- job: unittest-py310
variables:
TAG_LATEST: branch/default
script:
- DOCKER_BASE_IMAGE_NAME="$TEMP_IMAGE" tag-img
- TAG_COMMIT_SHA="no" DOCKER_BASE_IMAGE_NAME="$TEMP_IMAGE" DOCKER_IMAGE="xcgd/odoo_scripts" tag-img