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/myclonefolder
source_github_api_endpoint: https://git.corp.example.com/v2
source_github_web_endpoint: https://git.corp.example.com/v2
source_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.