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.24
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.24.tar.gz | 7.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_sh_gitlab_ci-1.0.24-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.0 kB
Release files / odoo_sh_gitlab_ci-1.0.24.tar.gz
| Download URL | odoo_sh_gitlab_ci-1.0.24.tar.gz |
|---|---|
| Size | 7.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
650e6ad5f3019af191995602d6bff00144fb196696292f5b9a4cdc7b87bb7ddc
|
|
BLAKE2b-256 checksum How to use checksums |
1f45143dde29e383bee330ce526c4ea8a1d47f6809d72ebd954a22b5fe7f2da1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / odoo_sh_gitlab_ci-1.0.24-py3-none-any.whl
| Download URL | odoo_sh_gitlab_ci-1.0.24-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b33b134ec4d102e680bb52b222524ecd1eee6d3b8778a1db0d3258fcfa201fac
|
|
BLAKE2b-256 checksum How to use checksums |
92a5f7f2c114d9a6d17d56d09b07745bc2cd4510291625d543b175d7a927a214
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|