/DINAR

Docker based runbot-like solution for odoo addons repositories

Primary LanguagePythonApache License 2.0Apache-2.0

DINAR

DINAR Is Not A Runbot.

DINAR helps you to configure Github Actions to test and preview Odoo addons.

Usage

  • Fork DINAR

  • Set secrets

    • BOT_TOKEN -- github token with push access to the repos
    • BOT_NAME -- Optional. Default Github Actions
    • BOT_EMAIL -- Optional. Default actions@github.com
  • Make config.yml file to list repositories and set other settings. See config.example.yml for details.

  • Check Actions tab in the fork

  • In your repositories: set secrets:

    • DINAR_TOKEN -- with access write:packages, read:packages
  • In your repositories: send new PR or rebase existing one

Repository structure

  • .github/workflows/:

    • DINAR2fork.yml -- checks for updates in DINAR and makes PR to your fork
    • fork2repos.yml -- Github Workflow to install forked DINAR to your repositories
  • static-files/ -- copy and push to a repo with overwriting. Mandatory files to make the system work.

    • all/ -- files for any version
    • 10.0/, 11.0/, etc -- version specific files
  • editable-files/ -- copy and push to a repo without overwriting. The files can be modified per repository.

  • embedded-files/ -- copy to a repo without overwriting. The files used on generating Docker images and normally shall not be modified per repository.

  • workflow-files/ -- scripts that can be used from workflows without coping.

  • local-files/ -- files to download to maintainer's machine to work with the dockers locally

Docker images

DINAR builds and push docker images to Github Packages. It works only for stable branches (e.g. 12.0) and branches marked with -dev- code (e.g. 12.0-dev-some-new-feature). Examples of docker images for 12.0 branch of repo-name repository:

  • dinar-odoo-repo-name:12.0-base - base odoo image with dependencies: installs packages and fetches repositories. It uses settings from .DINAR/image/.

  • Odoo and postgres images with preinstalled modules specified in manifest's depends attribute plus modules listed in addons.include attribute of .DINAR/config.yaml.

    • dinar-odoo-repo-name:12.0, dinar-db-repo-name:12.0 -- modules are installed with demo data
    • dinar-odoo-repo-name:12.0-nodemo, dinar-db-repo-name:12.0-nodemo -- modules are installed without demo data