What are Machine images?

A Machine image is an pre-baked image that contains all the necessary components installed to run your CI (runCI) or runSh jobs. Every Subscription (org/team depending on SCM you use) has a default version of the machine image configured. This default is setup whenever the first CI or Assembly Line is enabled on Shippable.

The following picture shows the components of the machine image and how they interact with each other.

  • When a new job is triggered, Shippable orchestration spins up a new build node, aka minion, with your default Subscription machine image.
  • For CI jobs configured with shippable.yml, the Shippable Agent on the build node spins up a build container using either the default Docker image depending on the language tag in your yml configuration or a custom Docker image if specified in the yml. All commands in the ci and post_ci section of your YAML are run inside the build container.
  • For runSh jobs configured in shippable.yml, commands in the script section are run in the Shippable Agent.

Machine Image for a Subscription

We currently offer the following Machine Images. The default Machine Image for your subscription is the latest image available when your Subscription was added to Shippable.

You can click on any image below to see what is pre-installed:

Machine Image Release date
v6.3.4 (latest) Apr 2, 2018
v6.2.4 Feb 25, 2018
v6.1.4 January 25, 2018
v5.10.4 October 27, 2017
v5.8.2 Aug 10, 2017
v5.7.3 Jul 20, 2017
v5.6.1 Jun 05, 2017
v5.5.1 Apr 26, 2017
v5.4.1 Mar 30, 2017
v5.3.2 Mar 11, 2017
Stable Feb 19, 2016 (deprecated)

In most cases, the default Machine image set for your Subscription will be sufficient to run your builds. The main reasons why you might want to consider changing to a more recent image are:

  • You need a newer language/service/package version
  • You need a newer Docker version

Viewing a Node Pool Machine Image

When a subscription is imported in your Shippable account for the very first time, a Node pool is automatically created for you. The default Node pool has a single Ubuntu 14.04 on-demand node, with the latest released Ubuntu 14.04 machine image. A subscription can have multiple Node pools that you can create. Each Node Pool specifies the machine image in its Runtime Version setting.

Here are the steps to view the Runtime Version setting for a Node pool:

  • View your Node pool using steps documented here
  • Click on Edit on your Node pool.
  • This will bring up a popup window where you can view the Runtime Version setting.

Subscription Node Pools view for Shippable DevOps Assembly Lines

Changing the Node Pool Machine image

  • Follow instructions in the Viewing Node Pool Machine Images section above to view the Runtime Version setting for the Node pool in your subscription.
  • Click on the Runtime Version dropdown to select a different image version. Please note that this setting will affect all jobs that are running on the node pool. A runCI/runSh job can be forced to run on a specific node pool by specifying the runtime setting in its yml.

Subscription Node Pools add for Shippable DevOps Assembly Lines