Reusable bundles of commands for our CircleCI deploys
To release a new version of an orb, please make sure you have the CircleCI CLI tool installed.
brew install circleci
To develop a bundle, you should clone this repo.
git clone https://github.com/boxt/orbs.git
cd ./orbs
Each orb lives in its own repository, and is installed as a sub-repository of this repo. To download those, run the following commands:
git submodule init # to initialize your local configuration file
git submodule update # to fetch all the data from that project and check out the appropriate commit
Once you make changes to an orb, add and commit them to the submodule in the same way you would any other repo.
Orbs are versioned separately, and so should be managed as individual repos.
- Create a feature branch for your orb changes.
cd <orb name>
git flow feature start my-change
- Stage and commit your changes to the repo.
git add .
git commit -am "I done stuff"
- Release a dev version of your changes to test on another repository.
circleci orb publish config.yml boxt/<orb name>@dev:x.y.z
- Test your changes by pointing your project's CircleCI config at your orb's development version.
# config.yml
version: 2.1
# ... other stuff
orbs:
yourorb: boxt/yourorb@dev:x.y.z
- Merge your changes into the
develop
branch.
git flow feature finish my-change
- Release a new version via Git Flow
git flow release start 1.2.3
-
Merge in changes as required
-
Finish the release
git flow release finish 1.2.3
- Push orb updated branches and tag to GitHub
git push origin main && git push origin develop && git push --tags
- Release final version of your orb.
circleci orb publish config.yml boxt/<orb name>@x.y.z
- Update this repo to make sure we're tracking the latest orb versions
You'll see the HTML comment <!-- VERSION_SNIPPET_START --><!-- VERSION_SNIPPET_END -->
in each of the README.md
documents. The contents of this are automatically maintained by a GitHub workflow. See the ./.github/workflows/*.yml
files for more info.