Skip to content

itpp-labs/DINAR

Repository files navigation

DINAR

DINAR Is Not A Runbot.

DINAR helps you to configure Github Actions to maintain Odoo addons.

  • deploy common files (e.g. pre-comming config)
  • run checks in pull requests
  • preview pull requests
  • port modules to next Odoo version

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 [email protected]
  • 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