VOL-4905 - Deploy new voltctl version.

jjb/shell/github-release.sh
---------------------------
  o Added --help text and command line switches.
  o Deprecate github-release command, replace with github gh cli.
  o Update authentication to use new pac strings or token file.
  o Create and auto-cleanup a scratch area for the script to use.
  o Added callstack display on error to help identify source.
  o Command line args added to facilitate interactive use.
    + Local access functions provide value lookup and defaults.
  o Begin to modularize the script, added named functions and
    wrapped global vars with accessor methods that format
    values for passing to the gh command.
  o Updated script to fail hard VS mask error conditions.  For ex do not
    publish a source-only release when artifact count is zero.
  o Script currently runs in (gh --draft) mode to exercise these changes.
  o Always call 'gh auth logout', esp for failure conditions.
  o Added the ability to query for repository release strings.
    + Simple verification for gh repository access.

jjb/verify/voltctl.yaml
-----------------------
  o Use new job template jjb/github-release/voltha.yaml.
  o Update to use a new jenkins credential id.

jjb/verify/voltctl.yaml
-----------------------
  o Use new job template jjb/github-release/voltha.yaml

Change-Id: I75432ea353d60d655c4558c6370d91f184d3b8ad
diff --git a/jjb/github-release/voltha.yaml b/jjb/github-release/voltha.yaml
new file mode 100644
index 0000000..4794e8b
--- /dev/null
+++ b/jjb/github-release/voltha.yaml
@@ -0,0 +1,57 @@
+---
+# publishing artifacts to GitHub releases
+
+- job-template:
+    id: github-release-voltha
+    name: 'github-release_{project}'
+    description: |
+      Created by {id} job-template from ci-management/jjb/github-release.yaml<br/>
+      Build and publish artifacts to GitHub as a release, with checksums
+
+    triggers:
+      - cord-infra-gerrit-trigger-merge:
+          gerrit-server-name: '{gerrit-server-name}'
+          project-regexp: '^{project}$'
+          branch-regexp: '{branch-regexp}'
+          file-include-regexp: '{all-files-regexp}'
+          dependency-jobs: '{dependency-jobs}'
+
+    properties:
+      - cord-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+          artifact-num-to-keep: '{artifact-num-to-keep}'
+
+    wrappers:
+      - cord-pypi-wrapper:
+          build-timeout: '{build-timeout}'
+          jenkins-ssh-credential: '{gerrit-ssh-credential}'
+      - credentials-binding:
+          - text:
+              credential-id: onf-bot-voltha
+              variable: GITHUB_TOKEN
+
+    scm:
+      - cord-infra-gerrit-scm:
+          git-url: '$GIT_URL/$GERRIT_PROJECT'
+          refspec: '$GERRIT_REFSPEC'
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: 'false'
+          choosing-strategy: gerrit
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+          basedir: '{project}'
+
+    node: '{build-node}'
+    project-type: freestyle
+    concurrent: true
+
+    builders:
+      - inject:
+          properties-content: |
+            DEST_GOPATH={dest-gopath}
+            RELEASE_TARGETS={release-targets}
+            ARTIFACT_GLOB={artifact-glob}
+            GITHUB_ORGANIZATION={github-organization}
+
+      - shell: !include-raw-escape: ../shell/github-release.sh
+
+# [EOF]