Release job for ONOS Yang Tools

Change-Id: I8dd74884d8866489581d2fa45f27e70a11002b4e
diff --git a/jjb/onos/onos-verify.yaml b/jjb/onos/onos-verify.yaml
index b60be92..66d498a 100644
--- a/jjb/onos/onos-verify.yaml
+++ b/jjb/onos/onos-verify.yaml
@@ -264,6 +264,68 @@
     #put shell scripts in file then make sure shell check is installed on verify vms
       - shell: !include-raw-escape: onos-yang-tools-verify.sh
 
+- job-template:
+    #default name is global
+    name: 'onos-yang-tools-release-build'
+
+    # Job template for ONOS Yang tools release jobs
+    #
+
+    <<: *job_boiler_plate
+    # yamllint disable-line rule:key-duplicates
+    parameters:
+      - lf-infra-parameters:
+         project: '{project}'
+         branch: '{stream}'
+         stream: '{stream}'
+         lftools-version: '{lftools-version}'
+
+      - string:
+         name: YANGTOOLS_VERSION
+         default: '2.4.2'
+         description: 'Version tag of ONOS Yang tools to build'
+
+      - string:
+         name: YANGTOOLS_NEXT_VERSION
+         default: '2.5-SNAPSHOT'
+         description: 'Version of ONOS Yang tools to reset tree to afterwards'
+
+    scm:
+      - lf-infra-gerrit-scm:
+          git-url: '{git-url}'
+          refspec: '$GERRIT_REFSPEC'
+          branch: '$GERRIT_BRANCH'
+          submodule-recursive: '{submodule-recursive}'
+          choosing-strategy: gerrit
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+    builders:
+      - lf-provide-maven-settings:
+          settings-file: 'release-build-maven-settings'
+          global-settings-file: 'release-build-maven-settings'
+      - config-file-provider:
+          files:
+            - file-id: 'onos-build-credentials'
+              target: 'onos-build-credentials'
+              variable: 'CREDENTIALS_FILE'
+            - file-id: 'buck-config-local'
+              target: '.buckconfig.local'
+              variable: 'BUCK_CONFIG_FILE'
+            - file-id: 'gpg-key'
+              target: 'jenkins.key'
+              variable: 'GPG_KEY_FILE'
+            - file-id: 'release-build-maven-settings'
+              target: 'settings.xml'
+              variable: 'MAVEN_SETTINGS'
+            - file-id: 'api-onosproject-ssh-key'
+              target: 'id_rsa.pub'
+              variable: 'API_ONOSPROJECT_SSH_KEY'
+
+    #put shell scripts in file then make sure shell check is installed on verify vms
+      - shell: !include-raw-escape: onos-yang-tools-release-build.sh
+      # JJB 1.6.2 does not support parameter expansion on filename?
+      #- shell: !include-raw-escape: {project-name}-verify.sh
+
+
 # workaround for lack of parameter expansion support in shell: (see above)
 - job-template:
     #default name is global
diff --git a/jjb/onos/onos-yang-tools-release-build.sh b/jjb/onos/onos-yang-tools-release-build.sh
new file mode 100644
index 0000000..1036e65
--- /dev/null
+++ b/jjb/onos/onos-yang-tools-release-build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash -ex
+
+# exit on errors
+set -eu -o pipefail
+
+# import GPG key
+gpg --import jenkins.key
+
+# set up release build credentials
+. onos-build-credentials
+
+# configure git settings
+git config user.email "jenkins@onlab.us"
+git config user.name "ONOS Jenkins User"
+
+# stage the maven settings
+mkdir -p ~/.m2
+mv settings.xml ~/.m2/settings.xml
+
+# stage and add the build SSH key
+chmod 600 id_rsa.pub
+ssh-add id_rsa.pub
+
+# get the sources
+git checkout $GERRIT_BRANCH
+
+# run the release process
+tools/onos-yang-tools-build-release ${YANGTOOLS_VERSION} ${YANGTOOLS_NEXT_VERSION} ${GERRIT_BRANCH}