I am new to frappe, I have created a few custom apps and wanted to explore now how to integrate CI/CD into this. Currently I have frappe v16 development setup on my machine.
My understanding is, I will create another bench and put it in production mode, and then pull my apps there. But online in official documentation I see that docker images are the go-to for production. Is there any resource that explains how to properly set up CI/CD without using docker?
Referred sources:
Setup Production
This document details the Continuous Integration and Continuous Deployment (CI/CD) pipeline used in the frappedocker repository. It covers the GitHub Actions workflows that automate building, testing,
### Setup development environment
- Use VS Code devcontainer. It needs a `.devcontainer` directory in your VS Code project directory to start development using containers. Create a repo for your developers to bootstrap development environment using devcontainer. Add additional scripts to do chores.
- Basic devcontainer setup for frappe exists in `devcontainer` directory
- Container can be customized with custom image and additional dependencies installed as part of initialization.
- Refer other frappe example located under `kube-devcontainer` to build custom image using `Dockerfile`, `devcontainer.json` and `compose.yml`
- Other devcontainer examples are `dind-devcontainer` to try docker in docker and `hugo-devcontainer` to develop static site using hugo.
### Use pre-commit for code lint and format
Install pre-commit using pip.
Place example file `frappe-ci-cd/.pre-commit-config.yaml` at root of your repo.
Make changes to config file as per need.
Current pre-commit requires `.eslintrc.js` and `.prettierrc` files to configure the checks. All example files are available under `frappe-ci-cd` directory.
Following example for `python:3-alpine` image used in CI task. Working directory is your root of your app repo.
This file has been truncated. show original