From d48d83540ec582301ada22bda0249098d4695181 Mon Sep 17 00:00:00 2001 From: Conor Ward Date: Wed, 2 Jan 2019 15:54:28 +0000 Subject: [PATCH] Add push-upstream job Added script, template and job to test. Change-Id: Id58910568fe8d2952a4f71c4b317f8db75168dfa Signed-off-by: Conor Ward --- .../dmaap-datarouter-push-upstream-jobs.yaml | 9 +++ .../global-templates-push-upstream.yaml | 30 +++++++++ jjb/global/jjb-macros.yaml | 18 ++++++ jjb/global/push-upstream-jobs.sh | 61 +++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 jjb/dmaap/dmaap-datarouter-push-upstream-jobs.yaml create mode 100644 jjb/global/global-templates-push-upstream.yaml create mode 100755 jjb/global/push-upstream-jobs.sh diff --git a/jjb/dmaap/dmaap-datarouter-push-upstream-jobs.yaml b/jjb/dmaap/dmaap-datarouter-push-upstream-jobs.yaml new file mode 100644 index 00000000..5acd6058 --- /dev/null +++ b/jjb/dmaap/dmaap-datarouter-push-upstream-jobs.yaml @@ -0,0 +1,9 @@ +--- +# this job gets triggered when push-upstream is commented on a change on Nordix Gerrit. +- project: + name: dmaap-datarouter-push-upstream + project: dmaap/datarouter + project-name: dmaap-datarouter + branch: nordix-dev + jobs: + - '{project-name}-push-upstream' diff --git a/jjb/global/global-templates-push-upstream.yaml b/jjb/global/global-templates-push-upstream.yaml new file mode 100644 index 00000000..06528c87 --- /dev/null +++ b/jjb/global/global-templates-push-upstream.yaml @@ -0,0 +1,30 @@ +- job-template: + name: '{project-name}-push-upstream' + + node: onap-ubuntu1604 + + disabled: false + + concurrent: true + + parameters: + - project-parameters: + project: '{project}' + branch: '{branch}' + - nordix-gerrit-parameters + + scm: + - git-scm-gerrit: + ssh-credentials-id: nordixinfra-nordix-gerrit-ssh + branch: '{branch}' + refspec: $GERRIT_REFSPEC + + triggers: + - nordix-gerrit-push-upstream: + project: '{project}' + branch: '{branch}' + files: '**' + + builders: + - shell: + !include-raw-escape: ./push-upstream-jobs.sh diff --git a/jjb/global/jjb-macros.yaml b/jjb/global/jjb-macros.yaml index 3b7c8f71..3de22ee0 100644 --- a/jjb/global/jjb-macros.yaml +++ b/jjb/global/jjb-macros.yaml @@ -157,6 +157,24 @@ - compare-type: 'ANT' pattern: '{files}' +- trigger: + name: nordix-gerrit-push-upstream + triggers: + - gerrit: + server-name: 'Nordix Gerrit' + trigger-on: + - comment-added-contains-event: + comment-contains-value: 'push-upstream' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + # triggers for ONAP Gerrit - trigger: name: onap-gerrit-trigger-change-merged diff --git a/jjb/global/push-upstream-jobs.sh b/jjb/global/push-upstream-jobs.sh new file mode 100755 index 00000000..12f0ab26 --- /dev/null +++ b/jjb/global/push-upstream-jobs.sh @@ -0,0 +1,61 @@ +#! /bin/bash + +# ============LICENSE_START======================================================= +# Copyright (C) 2019 The Nordix Foundation. 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +# +# This script will take the changes that are pushed to Nordix Gerrit and push upstream to ONAP +# Pre-requisites for script to run successfully: +# - Author name in Nordix Gerrit equals LFID i.e. need to run "git config --global user.name " +# - infra public key on build server needs to be added to your users SSH Public Keys in ONAP Gerrit +# + +cd $WORKSPACE + +project=$(git config --local remote.origin.url | awk -F "29418/" '{print $2}') +message=$(git show -s --pretty=%B | grep -vi 'Signed-off-by') +username=$(git show -s --pretty=%an) + +pattern=" " +if [[ "$username" =~ $pattern ]] +then + echo "Incorrect username, use Linux Foundation ID as git user.name when pushing to Nordix" + exit 1 +fi + +git config user.email $(git show -s --pretty=%ae) +git config user.name $username + +git reset HEAD~1 +git checkout -b delivery_branch origin/master + +echo '[remote "upstream"]' >> .git/config +echo " url = ssh://$username@gerrit.onap.org:29418/$project.git" >> .git/config +echo " fetch = +refs/heads/*:refs/remotes/upstream/*" >> .git/config + +git commit -as -m "$message" + +git push upstream HEAD:refs/for/master +retVal=$? +if [[ $retVal -eq 0 ]] +then + echo "Push upstream to ONAP succeeded" +else + echo "Push upstream to ONAP failed" + exit 2 +fi -- 2.25.1