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
Code:
- Frappe Framework Github Action
- ERPNext Github Action
- Helm Chart Release
- Helm Chart Release Script
- Job to build docker images and run helm chart release script
- Job to publish chart on helm.erpnext.com using chartpress
- Job that skips helm release due to no semver change
- ERPNext Documentation Dockerfile(s)
- travis.yml for continuous delivery and deployment of ERPNext Documentation
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 castlecraft.in.