CI/CD
Continuous integration and continuous deployment infrastructure
Currently, the way we have set up CI/CD is through GitHub Actions as well as Husky. GitHub Actions serves as a remote/repository-side integration and Husky is for developer-side.
The workflow is like this:
Developer makes code changes
Developer commits code
Pre-commit check: Husky linting workflow
Developer pushes commits to remote branch
Developer opens pull request
Pull request check: Cypress tests
Developer merges pull request
(if automatic deployments) Github Actions performs deployment to production if the target branch is master
Husky
Currently Husky simply lints commit messages to try to ensure that commit messages are descriptive enough.
The rules outline by conventional commits are enforced:
Eventually, Husky should check both code linting using eslint and formatting using prettier once we stabilize both.
Github Actions
We have GitHub actions for integration (CI) and deployment (CD) in the .github/ directory.
Integration
See cypress.yml for Cypress E2E tests.
Deployment
There is frontend.yml , community.yml , and backend.yml for workflows that deploy each part of the platform. The deploy.yml combines all of these workflows to deploy the entire platform.
Last updated