Continuous Delivery for Versioned Libraries
Jason Kulatunga @AnalogJ
Automate all the things? Obligatory XKCD
Important as releasing a new version of your App
Harder because you don't do it very often and you'll forget steps
CAPSULE_SOURCE_GITHUB_ACCESS_TOKEN=123456789ABCDEF \CAPSULE_RUNNER_REPO_FULL_NAME=AnalogJ/gem_analogj_test \CAPSULE_RUNNER_PULL_REQUEST=4 \CAPSULE_RUBYGEMS_API_KEY=ASDF12345F \docker run AnalogJ/capsulecd:ruby \capsulecd start --source github --package_type ruby
| Step | Description |
|---|---|
| source_configure | authenticate to github |
| runner_retrieve_payload | get PR info from source api |
| source_process_pr_payload | the merged pull request is cloned |
| build_step | missing files, compilation, version bumping |
| test_step | package deps, package test runner |
| package_step | commit changes locally, create git tag |
| release_step | push the release to the package repository |
| source_release | push the merged, versioned, tested code to GH |
source_git_parent_path: /srv/myclonefoldersource_github_api_endpoint: https://git.corp.example.com/v2source_github_web_endpoint: https://git.corp.example.com/v2source_configure:pre: |# this is my multiline ruby script# the pre hook script runs before the step# we have access to any of the instance variables here.# check the documentation for more information.