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. A pull request is merged into rapidftr master branch
  2. The Docker build is triggered to build a docker image for the application.
  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. When the CI pipeline runs to completion, it deploys to the configured nodes e.g. https://dev.rapidftr.com
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.