odoo-sh-gitlab-ci
This package simplifies and automates the process of updating Odoo.sh branches by interacting with a GitLab repository while using a GitHub repository as a container for multiple repositories. It ensures seamless management of submodules and branch synchronization, making the deployment process more efficient and maintainable.
Installation
Install the package using pip:
pip install odoo-sh-gitlab-ci
Usage
The package provides a command-line tool odoo_sh_deploy that can be used in two modes:
- Initialization Mode (
--initialize): Prepares the environment by configuring the SSH agent, adding SSH keys, and setting up Git configurations. - Deployment Mode: Performs the actual deployment to Odoo.sh.
Setting Up variables.sh
To simplify the configuration of environment variables, you can create a file called variables.sh in the root of your repository. Define your variables in this file using the following format:
export PRIVATE_DEPLOY_KEY="your_private_ssh_key"
export GITHUB_REPO="git@github.com:youruser/yourrepo.git"
export GITHUB_REPO_NAME="yourrepo"
export VERSION="18.0"
Example variables.sh
export PRIVATE_DEPLOY_KEY="-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1o9qX..."
export GITHUB_REPO="git@github.com:youruser/yourrepo.git"
export GITHUB_REPO_NAME="yourrepo"
export VERSION="18.0"
Important: For security reasons, it is recommended to define PRIVATE_DEPLOY_KEY as a protected variable in GitLab CI/CD settings instead of hardcoding it in the variables.sh file.
GitLab CI Configuration
To use odoo-sh-gitlab-ci in a GitLab CI pipeline, follow these steps:
-
Add the
variables.shfile to Your Repository: Ensure thevariables.shfile is located in the root of your repository. -
Update
.gitlab-ci.yml: Use the following configuration in your.gitlab-ci.yml:odoo_sh_deploy: stage: pre tags: - odoo before_script: - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )' - eval $(ssh-agent -s) - source variables.sh - pip install --root-user-action ignore odoo-sh-gitlab-ci - odoo_sh_deploy --initialize script: - source variables.sh - odoo_sh_deploy
before_script: This section installs the package and initializes the environment using the--initializeflag.script: This section performs the deployment usingodoo_sh_deploy.
-
Example Pipeline Stages: Here’s a full example of a pipeline that uses
odoo-sh-gitlab-ci:stages: - pre odoo_sh_deploy: stage: pre tags: - odoo before_script: - 'command -v ssh-agent >/dev/null || ( apk add --update openssh )' - eval $(ssh-agent -s) - source variables.sh - pip install --root-user-action ignore odoo-sh-gitlab-ci - odoo_sh_deploy --initialize script: - source variables.sh - odoo_sh_deploy
License
This project is licensed under the AGPL-3.0 License.
Release files for odoo-sh-gitlab-ci 1.0.22
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_sh_gitlab_ci-1.0.22.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_sh_gitlab_ci-1.0.22-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.6 kB
Release files / odoo_sh_gitlab_ci-1.0.22.tar.gz
| Download URL | odoo_sh_gitlab_ci-1.0.22.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b36145b67cd3a734d300d065501bd6877d8ec2f11590315f505e055a1d34bee
|
|
BLAKE2b-256 checksum How to use checksums |
1d68c61ff0540ca0751c471163746adf115527bbc92d3caa9fe5576fc8d5312e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|
Release files / odoo_sh_gitlab_ci-1.0.22-py3-none-any.whl
| Download URL | odoo_sh_gitlab_ci-1.0.22-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6eebc72b24af44c46f250ef72d06f502635ca28f8e275e68163cebd3e3d8d849
|
|
BLAKE2b-256 checksum How to use checksums |
22e826609b180777d005d796d74f79bde02fe6c14ff4f77825bdc4cce094127c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.15
|