Something went wrong on our end
-
Vincent Hatakeyama authored
Extract version with setuptools-scm
Vincent Hatakeyama authoredExtract version with setuptools-scm
.gitlab-ci.yml 5.48 KiB
include:
- 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
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}
# 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
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
junit: report.py36.xml
paths:
- report.py36.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
before_script:
# mercurial is needed so setuptools-scm does not crash when running hg to get the version number
- apk add git mercurial
- python3 -m pip install tox
script:
- tox --workdir=.cache/tox -e py310,coverage-report,coverage-xml
unittest-py311:
extends: unittest-py310
image: python:3.11-alpine
script:
- tox --workdir=.cache/tox -e py311,coverage-report,coverage-xml
import_jsonrpc_odoo11_test:
stage: test
needs: []
image:
name: quay.orus.io/odoo/odoo:11.0-bionic
entrypoint: [""]
services:
- name: postgres:12-alpine
command: ["-c", "fsync=off"]
alias: db
variables:
POSTGRES_USER: odoo
POSTGRES_HOST_AUTH_METHOD: trust
ODOO_ADDONS_PATH: ""
ODOO_TYPE: odoo11
before_script:
- python3 -m pip show pip setuptools
- python3 -m pip install pip>10
# 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 --upgrade $CI_PROJECT_DIR
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_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_jsonrpc_odoo11_test-focal:
extends: import_jsonrpc_odoo11_test
image:
name: quay.orus.io/odoo/odoo:11.0-focal
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:
name: quay.orus.io/odoo/odoo:15.0
entrypoint: [""]
variables:
ODOO_TYPE: odoo15
docker_build_copy_test:
needs:
- job: build-docker-image
stage: test
image: $TEMP_IMAGE
script:
- docker_build_copy
- docker_build_clean
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:
- apk add make
- pip3 install hg-evolve .[doc]
- cd doc
- for language in en fr ; do make LANGUAGE=$language BUILDDIRSUFFIX=/$CI_COMMIT_HG_BRANCH html ; done
publish_documentation:
needs:
- job: build-documentation
artifacts: true
only:
- /^branch\/.*/
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