Platform Ops

CI/CD

As part of our CI/CD pipeline in our @flowfuse/flowfuse repository, we perform the following actions when code is merged to the main branch:

  1. Several backend and UI tests are executed against the code by this pipeline
  2. Once all tests complete with success, FlowFuse npm package is built and published to the npm registry with a nightly tag by this pipeline.
  3. FlowFuse npm package is built and published to the npm registry with a nightly tag by this pipeline.
  4. The same pipeline triggers another action, responsible for building a container image
  5. Container image build pipeline uses flowfuse npm package created in step 1 (tagged as nightly) to build a fresh container image
  6. The resulting image is used to perform deployment on both staging and production environments.

You can read more about our various environments here:

  • Pre Staging - used for each individual pull request as part of the code review process.
  • Staging - triggered by merge to main branch, used for testing the full application, without fear of damaging the production environment.
  • Production - the live environment that our customers use.