Continuous integration (CI) & deployment (CD)
This document provides information about the automated CI / CD pipelines and scripts used for managing, building, testing, packaging, and releasing the application components.
CI / CD npm scripts
The root package.json file defines dedicated npm scripts for automating the build, validation, packaging, and deployment pipelines across all application components.
All CI/CD automation scripts adhere to a unified naming convention using the :ci suffix (formatted as <action>:<component>:ci). These scripts should be used to automate pipeline workflows in continuous integration environments and avoid reliance on interactive or platform-specific local developer configurations:
1. Back-end pipeline
npm run prerequisites:back-end:ci: prepares the build workspace, compiles shared core and back-end libraries, builds extension SDKs, and resolves back-end dependencies with link bindings ;npm run build:back-end:ci: generates the Prisma ORM client artifacts and compiles the back-end TypeScript source code ;npm run test:back-end:ci: runs the back-end automated test suite in non-interactive CI mode.
2. Electron desktop pipeline
npm run prerequisites:electron:ci: installs and links all subproject dependencies across the repository ;npm run build:electron:ci: builds all submodules and compiles the Electron desktop application ;npm run distribute:electron:ci: packages, signs, and notarizes the desktop distribution bundle for the target operating system ;npm run deploy:electron:ci: uploads and releases the signed distribution package to cloud storage.
3. Docker container pipeline
npm run prerequisites:docker:ci: builds shared libraries, extension runtimes, and the front-end web distribution required for embedding inside the container ;npm run build:docker:ci: executes the container image build via Docker ;npm run deploy:docker:ci: pushes the tagged container image to Docker Hub.