Minishift CI

Overview

Minishift uses the following CI build systems: CentOS CI, AppVeyor, Circle CI, and Travis CI. These systems build the master branch when a commit occurs as well as the incoming pull requests. Except for Travis CI, they also archive build artifacts.

CI Servers

CI System Summary

The following table describes the various CI systems Minishift utilizes and the locations of their build and configuration files:

CI SystemsDescriptionCI BuildsConfiguration files

CentOS CI

CentOS CI is the only CI system which can run integration tests, as it supports nested virtualization. Thus it is used to run integration tests in addition to unit tests.

The artifacts of a successful master build can be found at artifacts.ci.centos.org/minishift/minishift/master/<BUILD_ID>. The artifacts of a successful pull request build can be found at artifacts.ci.centos.org/minishift/minishift/pr/<PR_ID>.

As part of master build, Minishift documentation which is compiled from the master branch and integrated with OpenShift documentation is hosted at artifacts.ci.centos.org/minishift/minishift/docs/master/openshift-origin/master/minishift/.

On top of building the master branch and pull requests, CentOS CI is also used to build the tar bundle used for integration with docs.okd.io, as well as to build releases.

CentOS nightly job run daily at midnight. These jobs execute all integration tests against the master branch of the Minishift GitHub repository with their respective ISOs.

master, pull requests, docs, release, centos-nightly

centos_ci.sh

Circle CI

This system is used for compilation and unit testing on macOS. It is the only CI system which validates the Commit Message Requirements on each pull request.

master and pull requests

config.yml

AppVeyor

This server is used for compilation and unit testing on Windows.

master and pull requests

appveyor.yml

Travis CI

This server is used for compilation, unit testing and coverage reports on Linux (Ubuntu).

To provide full coverage reports it exposes MINISHIFT_GITHUB_API_TOKEN which allows for testing of Minishift interaction with GitHub. This token only allows to use increased API limit of GitHub and has no other privileges which could be misused in any way.

master, pull requests

.travis.yml