A Docker-based GitHub Action that compiles Odoo third-party modules from a repos.yml manifest and pushes the result to an Odoo.sh deployment repository.
- Fetches
pipeline.ymlandrepos.ymlfrom the source repo'sbase_branch - Optionally discovers PRs labeled for staging builds and includes their branches
- Runs git-aggregator to clone and compile all specified repos
- Extracts whitelisted Odoo modules from the aggregated codebases
- Generates a combined
requirements.txtfrom module-level external dependencies - Generates a
README.mdinventory of all bundled modules - Commits everything and force-pushes to the deployment repo's
target_branchwith abuild-{timestamp}tag
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: impress-foods/sh-module-bundler@v1
with:
repo: ${{ github.repository }}
target_branch: production
event_type: trigger_production_build
base_branch: main| Name | Required | Description |
|---|---|---|
repo |
Yes | Source repository (org/repo) |
target_branch |
Yes | Branch to push compiled addons to |
event_type |
Yes | trigger_staging_build or trigger_production_build |
base_branch |
Yes | Branch to fetch pipeline configs from |
git_user_name |
No | Git user name for commits (default: Odoo.sh Bundler) |
git_user_email |
No | Git user email for commits (default: bundler@odoo.sh) |
Defines which modules to extract and automation settings:
module_whitelist:
- module_a
- module_b
automation:
pr_trigger_label: to-stagingStandard git-aggregator manifest listing third-party Odoo module sources:
./thirdparty/my-repo:
remotes:
origin: https://github.com/OCA/my-repo.git
merges:
- origin 16.0make install # Install dependencies
make lint # Run ruff linter
make test # Run tests
make precommit # Run pre-commit hooksSee LICENSE.