Skip to content
This repository has been archived by the owner on Mar 24, 2022. It is now read-only.

set_up_ci

briancunnie edited this page Sep 17, 2012 · 5 revisions

pivotal_workstation can be configured with continuous integration (CI) to ensure that [at the very least] the most popular recipes run to completion. We use the following to run pivotal_workstation's CI:

  • VMware Fusion (we prefer using open source solutions, but as of 2012.09.14, VirtualBox does not support OS X guests)
  • Jenkins

Machines

You'll need three machines to run CI:

  • Jenkins server
  • VMware Host machine. The Jenkins user must be able to ssh into this machine & run commands
  • CI machine. This is the machine that runs the recipes. It is a VMware guest on the VMware host machine. The Jenkins user must be able to ssh into this machine & run passwordless sudo

CI Machine Configuration

  1. First, we install a mostly-pristine version of OS X. A step-by-step example can be found here. Some key differences:
  • Initial Virtual Machine Creation & Disk Partioning: 1 partition, not 2. Name it "ci"
  • Install Developer Tools
  • Skip the section Set Up Second (NEWLY_IMAGED) Partition
  • Post-pristine Configuration
  1. Take a [VMware] snapshot Name it mostly_pristine. You can do this from the Fusion GUI, or you can use the command line with something similar to the following:
    /Applications/VMware\ Fusion.app/Contents/Library/vmrun snapshot /Volumes/SSD/Virtual\ Machines.localized/pivotal-workstation-ci.vmwarevm/pivotal-workstation-ci.vmx mostly_pristine
  2. Create a Jenkins Job. Here's the XML file of the job we use. We also have a trigger job, and here's the corresponding XML file.
Clone this wiki locally