VOLTHA Release: voltctl

Source

Release resources

Source

Description

VERSION file

Contains the tool version to build and/or release.

jjb/shell/github-release.sh

Shell script used to publish release candidates to github.

Development

Build and test volctl locally
% 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 file, Symantec version strings

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

  • 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 and Downloads links.

    • A valid package(v1.7.6) _ will include:

      • The tags page index contains Notes and Downloads 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 will be published when the jenkins job github-release-voltctl is run.

  • 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.

TODO

  • Document key creation.

  • Document github-release.sh command line and use.

See Also