Created
March 23, 2016 16:46
-
-
Save bridgethillyer/957836bef620541c6322 to your computer and use it in GitHub Desktop.
Notes from the walkthrough of Onyx's release process
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Onyx release process walkthrough Feb 21, 2016 - Michael Drogalis, Gardner Vickers, Bridget Hillyer | |
* project.clj in onyx-core repo | |
* Release onyx-core, want to release all the other plugins so versions match | |
* catch problematic patches in core before they affect the plugins | |
* Plugins: include a 4th verison # so they can be released separate from core | |
* lein-unison - https://github.com/LonoCloud/lein-unison - Mike wrote this plugin for the syncing | |
* Circle CI: Can have branch-specific operations | |
- always deploys to clojars | |
- release-projects only happens in a release build | |
* lein-unison keeps all the projects in unison | |
- :unison in project.clj | |
- in lein-unison: unison iterates through all the projects in :unison :repos | |
- :branch "compatibility" read-only | |
- always has latest onyx core version - uses voom to get latest from git repo | |
- voom - https://github.com/LonoCloud/lein-voom - plugin that lets you depend on a commit sha | |
- so lets you know whenever something broke the build | |
* lein unison update-projects | |
- clones the projects into the build machine | |
- merges in latest from master | |
- then bumps the project version | |
* lein unison release-projects | |
- with a version branch | |
- so you know where you want to push it ultimately | |
- iterates through all projects | |
- clones the projects onto build machine | |
- checkout release branch | |
- executes release script | |
- most projects: scripts/release.sh | |
* release.sh | |
- 2 args: new version and new release branch | |
- automatically release to clojars | |
- sets projects.clj snapshot version: lein set-version | |
* master branch launches this process | |
* release a minor plugin version | |
- just run the plugin's release.sh locally | |
* Bug in Circle CI | |
- multiple ssh keys - doesn't intelligently name the files | |
- freshen the ssh config | |
- we have ssh key for each project | |
* circle.yml | |
- there is a Circle tutotial for how this works | |
* generative tests run on Circle | |
* Jepsen tests - not on Circle | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment