Updating Buildpack-Related Gems

Page last updated:

This topic describes how to update buildpack-packager and machete, used for CF system buildpack development.

buildpack-packager packages buildpacks and machete provides an integration test framework.

The CF Buildpacks team uses the gems-and-extensions pipeline to:

  1. Run the integration tests for buildpack-packager and machete
  2. Update the gems in the buildpacks managed by the team

Running the Update Process

Note: The steps below assume you are using a Concourse deployment of the buildpacks-ci pipelines

At the end of the process, there will be a new GitHub release and updates will be applied to the buildpacks.

To update the version of either gem in a buildpack:

  1. Confirm that the test job <gemname>-specs for the gem to be updated successfully ran on the commit you plan to update.
  2. Manually trigger the <gemname>-tag job to update (“bump”) the version of the gem.
  3. The <gemname>-release job will trigger. This will create a new GitHub release of the gem.
  4. Each of the buildpack pipelines (e.g. the go-buildpack pipeline) has a job which watches for new releases of the gem. When a new release is detected, the buildpack’s cf.Gemfile is updated to that release version.
  5. The commit made to the buildpack’s cf.Gemfile triggers the full integration test suite for that buildpack.

Note: The final step will trigger all buildpack test suites simultaneously, causing contention for available shared BOSH-lite test environments.