Skip to main content
Version: 2.0.2

Continuous Integration

caution

Before reading this page it's recommended to understand the Git Flow, please read that page first.

Based on the Git Flow a CI has been setup to automatically perform certain tasks at certain moments during the development cycle. On this page you can see which workflows are currently defined, when they're triggered and what the actions are that it will take upon being triggered.

Test on PR

Trigger

This flow is triggered on two occasions:

  • PR to all

Action

It runs a simulation using the configuration file found at config/configuration.yaml. Only when that simulation runs successfully will the CI be successfull, otherwise it will fail. This is a good indicator to see if the changes to the simulation repository have affected the simulator to the point of it not being able to run. Do pay attention though since it can still pass without performing actions, that is something that can be improved in the future. (checking if the simulation actually performed steps and printed a result other than 0)

Publish docs

Trigger

This flow is triggered on:

  • Push to dev, only when changes happened to docs/**

Action

Git checkout the almanak-co/docs-internal repository and perform a git tree pull that will overwrite all the existing files of this repository to the correct folder in that project. After which it will push those changes back to the docs-internal Github repository. Once that is done the docs-internal repository will have a CI triggered to publish the docs.

Build on Dev

Trigger

This flow is triggered on:

  • Push to dev

Action

Rebuild the docker container that contains the simulator and publish it to the Google Artifact registry. Right now it tags it to latest automatically. Later on we need to versionise this properly.

And republish the simulation service to Firebase Functions

Build on Main

Trigger

This flow is triggered on:

  • Push to main

Action

  • Rebuild the docker container that contains the simulator and publish it with the tag dev to the Google Artifact registry on the Production GCP project.
  • Republish the simulation service to Firebase Functions on the Production GCP project.
  • Publish the latest docs through a workflow call to the "Publish docs" CI.

Release

Trigger

This flow is triggered on:

  • Tag

Action

  • Rebuild the docker container that contains the simulator and publish it with the tag latest to the Google Artifact registry on the Production GCP project.
  • Republish the simulation service to Firebase Functions on the Production GCP project.
  • Publish the SDK to the Google Artifact Registry on the Production GCP project.
  • Publish the CLI to the Google Artifact registry on the Production GCP project.
  • Tag the version of the docs to the version name of the tag.