Continuous delivery and continuous deployment of Frappe/ERPNext with Docker and Kubernetes

Frappe/ERPNext has been doing Continuous Integration (CI).

Currently some of the jobs it runs are unit tests, end to end tests, lint checks, security checks and tests for migration patches.

ERPNext is continuously delivered since it uses the git repository for installing the package during the environment setup. As soon as the branch is updated by a core team with bench release command, users needs to update their installation with bench update command.

ERPNext can be continuously deployed using VMs, ssh keys, right amount of CI and update scripts. May be add ansible to the stack.

Continuous delivery of Frappe/ERPNext for Docker and Kubernetes

With recent addition of Github actions, continuous delivery for Docker and Kubernetes is achieved.

Github Action was added in June, it took some time to start working as a pipeline. It depended on actual releases to happen for me to verify if it works in production.

As soon as Frappe Framework or ERPNext is released it will trigger image builds and helm chart release script on frappe/frappe_docker repository.

Outcome is, Frappe/ERPNext release results in Docker images built and update pushed on official Helm Chart. Last few chart versions were automatically packaged and published. viz. erpnext-1.0.13, erpnext-1.0.12.

Continuous deployment of ERPNext Documentation on Kubernetes

This is currently done for frappe/erpnext_documentation.

ERPNext Documentation is a “custom app” made with Frappe Framework. It showcases how custom app can be continuously delivered and deployed.

On merge of PR to master branch, simultaneous docker builds are triggered and images are pushed to registry.

Once new images are ready, additional job runs to upgrade deployed helm release.

This automation was done by @chinmaypai


Edit 2020-10-27

ERPNext documentation has moved to frappe cloud, it is not hosted on Kubernetes anymore.

For complex CI/CD pipelines and Kubernetes deployments contact