Newer
Older
- 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

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
rules:
- if: $CI_COMMIT_TAG == null

Vincent Hatakeyama
committed
rules:
- if: $CI_COMMIT_TAG == null

Vincent Hatakeyama
committed
TAG_COMMIT_SHA: "yes"
pylint:
needs:
- job: build-docker-image
image: $TEMP_IMAGE
variables:
PYLINT_FILES: odoo_scripts doc tests

Vincent Hatakeyama
committed
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

Vincent Hatakeyama
committed
rules:
- if: $CI_COMMIT_TAG == null
unittest:
needs: []
stage: test

Vincent Hatakeyama
committed
image: quay.orus.io/xcg/multi-python
- tox --workdir=.cache/tox --parallel all -e

Vincent Hatakeyama
committed
py36,py37,py38,py39,py310,py311,py312,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

Vincent Hatakeyama
committed
rules:
- if: $CI_COMMIT_TAG == null
name: quay.orus.io/odoo/odoo:11.0.git20230705.01717dc-20.04.3
- name: postgres:12-alpine
command: ["-c", "fsync=off"]
alias: db
variables:
POSTGRES_USER: odoo
POSTGRES_HOST_AUTH_METHOD: trust
ODOO_ADDONS_PATH: ""
- python3 -m pip show pip setuptools
- python3 -m pip install pip>10
# install modules
- &install_modules $CI_PROJECT_DIR/start --db_host=db -d test_setup
--max-cron-threads=0 --without-demo=all --data-dir $ODOO_DATA_DIR --init base
# install current version as this is the one tested, not the one in the image
- export PATH=$HOME/.local/bin:$PATH
- python3 -m pip install dist/*.whl
# 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
- 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

Vincent Hatakeyama
committed
rules:
- if: $CI_COMMIT_TAG == null
import_jsonrpc_odoo11_test:
extends: import_jsonrpc_odoo11_test-focal
name: quay.orus.io/odoo/odoo:11.0.git20230705.01717dc-18.04.2
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-focal
name: quay.orus.io/odoo/odoo:13.0.git20230608.038354c-2
entrypoint: [""]
variables:
ODOO_TYPE: odoo13
import_jsonrpc_odoo14_test:
extends: import_jsonrpc_odoo11_test-focal
image:
name: quay.orus.io/odoo/odoo:14.0.git20230227.439095d-2
entrypoint: [""]
variables:
ODOO_TYPE: odoo14
extends: import_jsonrpc_odoo11_test-focal
name: quay.orus.io/odoo/odoo:15.0.git20230710.a70cbd5-3
entrypoint: [""]
variables:
ODOO_TYPE: odoo15
name: quay.orus.io/odoo/odoo:16.0.git20230710.d0ae301-6
services:
- name: postgres:15-alpine
command: ["-c", "fsync=off"]
alias: db

Vincent Hatakeyama
committed
rules:
- if: $CI_COMMIT_TAG == null
build-documentation:
# done in test stage to be able to use the built image
stage: test
needs:
artifacts:
paths:
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

Vincent Hatakeyama
committed
publish_documentation:
rules:
- if: $CI_COMMIT_BRANCH =~ /^branch\/.*/
extends: build-docker-image
stage: deploy
needs:
- job: import_jsonrpc_odoo11_test
- job: import_jsonrpc_odoo11_test-focal
- job: import_jsonrpc_odoo13_test
- job: import_base_import_odoo11_test
variables:
TAG_LATEST: branch/default
script:
- TAG_COMMIT_SHA="no" DOCKER_BASE_IMAGE_NAME="$TEMP_IMAGE"
DOCKER_IMAGE="xcgd/odoo_scripts" tag-img
release_job:
stage: deploy
image: registry.gitlab.com/gitlab-org/release-cli:latest
needs:
- publish_package
rules:
- if: $CI_COMMIT_TAG
script:
- echo "running release_job"
- export EXTRA_DESCRIPTION="test"
release:
description: "Created using the release-cli $EXTRA_DESCRIPTION"
tag_name: "$CI_COMMIT_TAG"
ref: "$CI_COMMIT_TAG"
# TODO find a way to automatically add the packages and changelog to the release