Skip to content
This repository has been archived by the owner on May 25, 2022. It is now read-only.

Continuous Integration

ctumwebaze edited this page Aug 8, 2014 · 7 revisions

Goals

  • Run tests on pull requests, Merge pull requests only when build is already green
  • Evergreen master (or at least > 99%)
  • No overhead of a core team maintaining servers. The CI should keep running
  • Less queuing

Current CI Pipeline

  • Travis-CI runs on every pull request, and directly marks the pull request as red/green
  • We merge only if the pull request is green
  • Jenkins runs after merging, and handles deployments tasks such as deploying to Dev/Test/UAT, uploading APKs, etc

One-time tasks such as generating an installer, etc are not to be delegated to the CI. Whenever a production release is made, generate the installer and upload it to the Releases folder, and be done with it.

Deployment Process

  1. Git Commit on the master branch i.e rapidftr/RapidFTR/master
  2. Docker Hub is notified of the changes to master and begins building a docker image
  3. When docker is done building the image, it notifies the Jenkins CI using a configured web hook to start running the deployment pipeline
  4. If the CI pipeline runs to completion, the configured server will be updated with the latest docker image. i.e dev.rapidftr.com