VOLTHA Release: voltctl¶
Source¶
Source |
Description |
---|---|
Contains the tool version to build and/or release. |
|
Shell script used to publish release candidates to github. |
Development¶
% git clone ssh://gerrit.opencord.org:29418/voltctl.git
% cd voltctl
% make help
% make lint # [optional] lint-sanity lint-style lint-mod sca
% make build
% make check # [optional] test
% make release # compile release binaries
% make install
Release Builds howto:¶
Increment the VERSION file to a major or minor point release.
Version |
Artifact |
Description |
---|---|---|
1.2.3 |
docker |
Publish artifacts |
1.2.3-dev |
Dev patch, build and test w/o external publishing. |
Merging the patch will initiate a jenkins job to build components
repo::voltctl, Gerrit example: 33551.
At least two jenkins jobs need to run:
-
Verify VERSION file string is sane.
-
Publish tool to github.
-
Verify git tags
A SemVer tag was created (vee prefix v{semver} signifies a golang package).
Verify the latest package(v1.8.45) contains more than just source archives (gz, zip): - The tags page index lacks
Notes
andDownloads
links.A valid package(v1.7.6) _ will include:
The tags page index contains
Notes
andDownloads
links.A checksum file
Versioned voltctl binaries for several platforms (darwin, linux, windows)
Source code bundles (tar.gz and zip).
Released version will be consumed by jenkins installer vars/installVoltctl.groovy.
Create an official voltctl release¶
installVoltctl.groovy depends on github/releases/latest for versioned release information.
To generate a release commit changes to repo::voltctl:
Modify VERSION file major/minor numbers for the upcoming release.
Remove any -dev or patch modifiers.
Create a pull request for review.
Changes are published by pipeline job github-release-voltctl.
Verify the release version contains a checksum file:
checksum.SHA256
voltctl-1.7.6-darwin-amd64
voltctl-1.7.6-linux-amd64
voltctl-1.7.6-linux-arm64
voltctl-1.7.6-windows-amd64
Source code (zip)
Source code (tar.gz)
Manual release¶
Avoid this answer whenever possible but when peripheral breakage or volume prevents publishing a new version of voltctl, a the tool can be published manually. The user will need repository publishing permissions on github and creation of a github api key for their account.
Under the hood the github gh command will handle all the heavy lifting.