diff --git a/README.md b/README.md index ec68042..540f7df 100644 --- a/README.md +++ b/README.md @@ -285,6 +285,25 @@ Example Playbook odoo_role_odoo_release: 20180424 ``` +Developing & Testing +------- + +For developing and testing the role, we use [`devenv`](https://github.com/coopdevs/devenv) to manage local virtual machines in Linux environments. + +You can use the `.devenv` file in `tests` folder to create a virtual machine. + +```bash +devenv +``` + +Then, you can test the role with the following command: + +```bash +ansible-playbook devenv.yml -i inventory +``` + +It will provision a virtual machine with postgresql and then, execute the role. + Release ------- diff --git a/defaults/main.yml b/defaults/main.yml index 21f4beb..f23977b 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -51,7 +51,7 @@ odoo_role_list_db: false odoo_role_dbfilter_enabled: true # Comma-separated list of modules to install before running the server -odoo_role_odoo_core_modules: "base" +odoo_role_odoo_core_modules: "base,web" # path of where to find the community modules requirements.txt odoo_role_community_modules_requirements_path: "{{ inventory_dir }}/../files/requirements.txt" diff --git a/tests/.devenv b/tests/.devenv new file mode 100644 index 0000000..8e2e006 --- /dev/null +++ b/tests/.devenv @@ -0,0 +1,10 @@ +# File created with devenv init command + +NAME="odoo-role-test" +DISTRIBUTION="ubuntu" +RELEASE="jammy" +ARCH="amd64" +HOST="$NAME.local" + +# Select the python interpeter python2.7 or python3 +PYTHON_INTERPRETER=python3 diff --git a/tests/ansible.cfg b/tests/ansible.cfg new file mode 100644 index 0000000..ac09f6c --- /dev/null +++ b/tests/ansible.cfg @@ -0,0 +1,2 @@ +[defaults] +roles_path = ../../ diff --git a/tests/devenv.yml b/tests/devenv.yml new file mode 100644 index 0000000..c5e7659 --- /dev/null +++ b/tests/devenv.yml @@ -0,0 +1,20 @@ +--- +- hosts: devenv + remote_user: root + become: true + # This is needed to be able to test the role without postgresql role + tasks: + - include_tasks: setup_postgresql.yml + +- hosts: devenv + remote_user: root + become: true + roles: + - odoo-role + vars: + odoo_role_odoo_url: "https://git.coopdevs.org/coopdevs/odoo/OCB/-/archive/{{ odoo_role_odoo_release }}/OCB-{{ odoo_role_odoo_release }}.tar.gz" + odoo_role_odoo_version: "14.0" + odoo_role_odoo_release: "{{ odoo_role_odoo_version }}" + odoo_role_community_modules_requirements_path: requirements.txt + odoo_role_odoo_http_interface: 0.0.0.0 + odoo_role_odoo_community_modules: "web_responsive,web_environment_ribbon" diff --git a/tests/inventory b/tests/inventory index 878877b..c73a8e1 100644 --- a/tests/inventory +++ b/tests/inventory @@ -1,2 +1,4 @@ -localhost - +[devenv] +odoo-role-test.local ansible_host=odoo-role-test.local +[all] +localhost ansible_connection=local diff --git a/tests/requirements.txt b/tests/requirements.txt new file mode 100644 index 0000000..c177447 --- /dev/null +++ b/tests/requirements.txt @@ -0,0 +1,2 @@ +odoo14-addon-web_responsive==14.0.1.2.3.dev4 +odoo14-addon-web_environment_ribbon==14.0.1.0.1.dev11 diff --git a/tests/setup_postgresql.yml b/tests/setup_postgresql.yml new file mode 100644 index 0000000..e386741 --- /dev/null +++ b/tests/setup_postgresql.yml @@ -0,0 +1,37 @@ +--- +- name: Install pip + apt: + name: python3-pip + +- name: Install psycopg2 + pip: + name: psycopg2-binary + +- name: Install PostgreSQL + apt: + name: postgresql + state: present + update_cache: true + when: ansible_os_family == "Debian" + +- name: Ensure PostgreSQL is running + service: + name: postgresql + state: started + enabled: true + +- name: Create a database user for Odoo + become: true + become_user: postgres + postgresql_user: + name: odoo + state: present + role_attr_flags: LOGIN,CREATEDB + +- name: Create a database for Odoo + become: true + become_user: postgres + postgresql_db: + name: odoo + owner: odoo + state: present