From 2fe3ecd2b74ba35fa5985564f6f797756752e39f Mon Sep 17 00:00:00 2001 From: Yolanda Robla Date: Tue, 12 Mar 2019 12:54:04 +0100 Subject: [PATCH] Add initial job to produce kni installer binary Change-Id: Ib37080d6b4815c32fe7dd941397000cf9e03d4ed Signed-off-by: Eric Ball --- jjb/akraino-templates/akraino-jjb-kni.yaml | 89 ++++++++++++++++++++++++++++++ jjb/kni/kni_installer.yaml | 10 ++++ jjb/shell/build_kni_installer.sh | 36 ++++++++++++ jjb/shell/install_go.sh | 31 +++++++++++ 4 files changed, 166 insertions(+) create mode 100644 jjb/akraino-templates/akraino-jjb-kni.yaml create mode 100644 jjb/kni/kni_installer.yaml create mode 100755 jjb/shell/build_kni_installer.sh create mode 100755 jjb/shell/install_go.sh diff --git a/jjb/akraino-templates/akraino-jjb-kni.yaml b/jjb/akraino-templates/akraino-jjb-kni.yaml new file mode 100644 index 0000000..2f1e2f4 --- /dev/null +++ b/jjb/akraino-templates/akraino-jjb-kni.yaml @@ -0,0 +1,89 @@ +--- +# +# Copyright (c) 2019 Red Hat. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +- job-template: + id: kni-installer-build-installer + name: '{project-name}-build-installer' + + ###################### + # Default parameters # + ###################### + + build-days-to-keep: 30 + build-timeout: 60 + submodule-recursive: true + + ##################### + # Job Configuration # + ##################### + + project-type: freestyle + node: '{build-node}' + + properties: + - lf-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + + parameters: + - lf-infra-parameters: + project: '{project}' + branch: '{branch}' + stream: '{stream}' + lftools-version: '{lftools-version}' + + wrappers: + - lf-infra-wrappers: + build-timeout: '{build-timeout}' + jenkins-ssh-credential: '{jenkins-ssh-credential}' + + gerrit_merge_triggers: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: remerge$ + + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: '{jenkins-ssh-credential}' + git-url: '{git-url}/{project}.git' + refspec: '$GERRIT_REFSPEC' + branch: '$GERRIT_BRANCH' + submodule-recursive: '{submodule-recursive}' + submodule-timeout: '{submodule-timeout}' + choosing-strategy: default + + triggers: + - gerrit: + server-name: '{gerrit-server-name}' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + + builders: + - lf-infra-pre-build + - shell: !include-raw-escape: + - ../shell/install_go.sh + - shell: !include-raw-escape: + - ../shell/build_kni_installer.sh + + publishers: + - lf-infra-publish diff --git a/jjb/kni/kni_installer.yaml b/jjb/kni/kni_installer.yaml new file mode 100644 index 0000000..edb7a82 --- /dev/null +++ b/jjb/kni/kni_installer.yaml @@ -0,0 +1,10 @@ +--- +- project: + name: kni-installer + project: 'kni/installer' + project-name: kni-installer + build-node: centos7-builder-2c-1g + stream: master + branch: master + jobs: + - kni-installer-build-installer diff --git a/jjb/shell/build_kni_installer.sh b/jjb/shell/build_kni_installer.sh new file mode 100755 index 0000000..0502229 --- /dev/null +++ b/jjb/shell/build_kni_installer.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +export PATH=$PATH:/usr/local/go/bin +KNI_PATH='go/src/gerrit.akraino.org/kni/' + +set -e -u -x -o pipefail + +echo '---> Starting kni installer generation' + +mkdir -p $HOME/${KNI_PATH}/installer +export GOPATH=$HOME/go + +# move clone to gopath +cp -R ${WORKSPACE}/* $HOME/${KNI_PATH}/installer/ + +# first build kni installer +pushd $HOME/${KNI_PATH}/installer +make build +STATUS=$? +popd + +exit $STATUS diff --git a/jjb/shell/install_go.sh b/jjb/shell/install_go.sh new file mode 100755 index 0000000..a9f6ffd --- /dev/null +++ b/jjb/shell/install_go.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Copyright (c) 2019 Red Hat. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +if [ -z "${GO_URL}" ]; then + GO_URL='https://dl.google.com/go/' +fi + +if [ -z "${GO_VERSION}" ]; then + GO_VERSION='go1.12.linux-amd64.tar.gz' +fi + +set -e -u -x -o pipefail + +echo "---> Installing golang from ${GO_URL} with version ${GO_VERSION}" + +# install go +wget ${GO_URL}/${GO_VERSION} +sudo tar -C /usr/local -xzf ${GO_VERSION} -- 2.16.6