Skip to content

CI Pipeline

Robert Lin edited this page Nov 24, 2018 · 1 revision

This document outlines Inertia's continuous integration pipeline.

Tests

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-test repository 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.

Releases

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.

Homebrew and Scoop releases are not automated, and must be manually updated through their respective repositories.

Clone this wiki locally