This is assembly repository.
It will be automatically updated with modules listed in odoo_packager.yml file.
Modules that are not managed by packager have to be added in separate folder custom_addons
of this repostitory.
The modules managed by packager are packaged into dist folder of this assembly.
Typical way to update assembly repository:
- Create new branch from stable branch. For example: 11.0-update
- Check that packager job have started on this branch. If it is not started, we have to start it manually from web: CI/CD -> Run Pipeline
- When job is completed and repository have changes, then there new commit will be created on that branch (11.0-update)
- Create merge request
- Review changes
- Merge to stable branch
- Pull changes to Odoo intances that are running this assembly.
This section describes configuration format for `odoo_packager.yml' file.
For up to date info look at packager repository
This configuration file use YAML syntax and have following format:
# Set this param to True if you do not need to check for missing dependencies for this repo.
no-check-deps: true
# If set to true, then no changes to addons will be made.
# Only addons specified via 'PACKAGE_ONLY_' environment variables will be updated
global-freeze: false
# List of addons that have to be added to repositorye
addons-list:
# Usualy it is enough just to list names of addons
- generic_condition
- generic_rule
- website_snippet_anchor
# Freeze version of this addon. It will not be updated.
# The only way to update such addons is to specify environment variable
# PACKAGE_ONLY_website_legal_page=1
- name: website_legal_page
freeze: true
# In specific cases you can specify source to get addon from.
# Source is name of git repository, where this addon is located.
# This feature is used in cases, when addon is available in two or more
# repositories in different versions
- name: crnd_web_diagram_fix
source: crnd-web
- name: website_logo
source: website_logo
- auth_saml
# Also, you can download addons directly from Odoo Apps.
# just specify that this addon have to be downloaded from Odoo Apps
- name: bureaucrat_helpdesk_lite
odoo_apps: true
# List of git repositories to fetch addons from.
git-sources:
# Usually it is enough to specify repository url only
- url: "https://github.com/crnd-inc/generic-addons"
- url: "https://github.com/OCA/website"
# also we can specify name for repository,
# that could be used to reference this repository
# in addons-list section.
- url: "git@gitlab.crnd.pro:crnd/crnd-web"
name: "crnd-web"
# Also it is possible to specify branch to of repository to be clonned.
# It is possible to specify one repository multiple times with different
# branches. There is specific parametr 'no_search' which means that
# this repository will not take part in search of source for addon.
# It will be used as source only if it is manually
# specified as source for addon (in addons-list)
- url: "https://github.com/eslAmer/website"
branch: "12.0-mig-website_logo"
no_search: true
name: "website_logo"
# There are some shortcuts available.
# This is shortcut for OCA repositories located under github.com/OCA
# and internaly it will be converted to
# url: "https://github.com/OCA/server-auth"
- oca: server-auth
# There is one more shortcut available: 'github'.
# specification below will be automatically converted to
# url: "https://github.com/OCA/web"
- github: OCA/web
# There is also shortcut for repositories
# located on gitlab.crnd.pro available:
- crnd: crnd/bureacurat-service
# List of known addons,
# that will not be treated as missing dependencies if not packaged.
known-addons:
- crnd_web_diagram_plus
- generic_condition
Encription of addons is managed via environment variables.
To tell packager that addon my_addon
have to be encrypted via PyArmor
you have to specify following environment variable:
ARMOR_ADDON_my_addon = 1
As we can see, variable name consists of two parts separated by underscore (_
):
ARMOR_ADDON
which tells packager that some addon have to be encryptedmy_addon
- name of addon that have to be encrypted.
Thus if you need to encrypt multiple addons, you have to specify one variable per addon.
See GitLab documentation, that describes how to configure environment variables. Especially check section that describes how to setup environment variables from UI
It is possible to make packager to update only specific addons. To do this, you have to define environment variables in format:
PACKAGE_ONLY_addon_name=1
where addon_name
is name of addon that have to be updated.
See GitLab documentation, that describes how to configure environment variables. Especially check section that describes how to setup environment variables from UI
Also, for Update Only feature, it is useful to define variables, when starting new pipeline manualy
It is possible to specify credentials for external git-sources that uses private repositories
To do this we have to add repo to sources list specifying also it's name
git-sources:
- url: https://github.com/my/private-repo.git
name: my_private_repo
Next, you have to specify following environment variables:
PACKAGER_GIT_USER_my_private_repo=my-login PACKAGER_GIT_PASS_my_private_repo=myL_super_passoword