To create a new box release, do the following:
Check README.md to install all necessary tools and configurations to set up your local build environment.
- Update
BOX_VERSION_BASE
to a new version, use the semantic versioning scheme. - Check if there is a new base box release, if so update
BOX_BASE_VERSION
. - Check if there is a new Minikube release, if so update
MINIKUBE_VERSION
- Check if there is a new cri-dockerd release, if so update
CRIDOCKERD_VERSION
- Check if there is a new cri-tools release using
apt list -a cri-tools
, if so updateCRITOOLS_VERSION
. - Check if there is a new Docker release using
apt list -a docker-ce
, if so updateDOCKER_VERSION
. - Check if there is a new kubectl release using
apt list -a kubectl
, if so updateKUBECTL_VERSION
. - Check if there is a new CNI Plugins release, if so update
CNI_PLUGINS_VERSION
. - Check if there is a new Helm release, if so update
HELM_VERSION
. - Check if there is a new kubetail release, if so update
KUBETAIL_VERSION
. - Check if there is a new kubelogs release, if so update
KUBELOGS_VERSION
. - Check your local tools versions, and update
VIRTUALBOX_VERSION
,PACKER_VERSION
, andVAGRANT_VERSION
accordingly.
Create a new section in CHANGELOG.md with the new box version you have just created. The final version tag will be BOX_VERSION_BASE-YYYYMMDD
with YYYYMMDD
being today's date (at the time of running build.sh
).
In this section, add bullets for every item you have changed in the release.
Check README.md under Prerequisites, check if you need to update the tool versions for VirtualBox, Packer and Vagrant in you used new versions to create the build.
If you are satisfied with all changes made to all files, commit your changes in git but do not push them yet.
git commit -am "New box version: BOX_VERSION_BASE-YYYYMMDD."
Be sure to replace the commit message with the actual box version.
Run build.sh
to create the actual build.
This will create the base box and updload it to Vagrant, but will not publish it yet. It will incorporate the git commit you have just made in the documentation so the build can be reproduced.
If you are happy with your new build, do the following:
Push your git commit and tag to GitHub:
git push
git push origin BOX_VERSION_BASE-YYYYMMDD
Log into Vagrant and publish the box you have just uploaded.
Finally, in GitHub, create a release based on the tag you have just pushed, copying the section you have added in CHANGELOG.md as the release notes.
Should the build fail, or if you want to make changes, do the following:
- Delete the uploaded and unreleased box from Vagrant.
- If it had been created, delete the tag in your local git repository created by
build.sh
. - Change anything as you so wish.
- Git
commit --amend
to update your previous commit. - Run
build.sh
to build again. - If you are happy with this build, push your code as normal, or re-run these steps until you are happy.