This document outlines Inertia's continuous integration pipeline.
Tests are continuously executed by Travis CI. Inertia' test pipeline covers as much of a deployment's lifecycle as possible. It includes:
- unit tests for internal functionality
- integration tests for builds, and the repository contains test projects for each build procedure
- integration tests for git SSH functionality, through the
inertia-deploy-testrepository and a provided read-only key
- integration tests for the entire bootstrap process (
inertia [remote] init)
- Travis executes each test on a variety of mock VPS services, provided via SSH-enabled Docker containers
Setting this up locally is described in CONTRIBUTING.md and involves executing a bunch of provided scripts in the correct order.
Most of these tests are executed in parallel - this blog post goes over Inertia's Travis builds and the work undertaken to optimize it.
Travis CI also handles automated builds when a new release is tagged. It builds the daemon in a new Docker image and pushes it to Docker Hub, and cross-compiles the CLI for a number of platforms. The CLI binaries are then uploaded to GitHub automatically.