X-Git-Url: https://gerrit.nordix.org/gitweb?a=blobdiff_plain;f=opendev%2Fpush-upstream-jobs.sh;fp=opendev%2Fpush-upstream-jobs.sh;h=148b2b093db4b18aa8b25c655d3aae21092d5081;hb=29c6ceda9774f4a5de1cd3880a20214b6d420c5d;hp=0000000000000000000000000000000000000000;hpb=87d7d687c9038e80d341765edc703ddeaf0bf232;p=infra%2Fcicd.git diff --git a/opendev/push-upstream-jobs.sh b/opendev/push-upstream-jobs.sh new file mode 100755 index 00000000..148b2b09 --- /dev/null +++ b/opendev/push-upstream-jobs.sh @@ -0,0 +1,77 @@ +#!/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 OpenDev +# Pre-requisites for script to run successfully: +# - Author name in Nordix Gerrit have to be the same as OpenDev username +# 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 OpenDev Gerrit +# +set -o nounset +set -o pipefail + +cd $WORKSPACE +echo "Retrieving information from commit to push towards OpenDev" +project=$(git config --local remote.origin.url | awk -F "29418/opendev/" '{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 OpenDev username as git user.name when pushing to Nordix" + exit 1 +fi + +echo "Setting user name and email" +git config user.email $(git show -s --pretty=%ae) +git config user.name $username + +echo "Checking out branch on master with new changes" +git reset HEAD~1 --soft +git checkout -b delivery_branch origin/$BRANCH + +git config --get remote.upstream.url +retVal=$? + +if [[ $retVal -eq 0 ]] +then + git remote rm upstream + git remote add upstream "ssh://$username@review.opendev.org:29418/$project.git" +else + git remote add upstream "ssh://$username@review.opendev.org:29418/$project.git" +fi + +echo "Committing changes and pushing upstream" +git commit -as -m "$message" +git push upstream HEAD:refs/for/$BRANCH + +retVal1=$? +if [[ $retVal1 -eq 0 ]] +then + echo "Push upstream to OpenDev succeeded" +else + echo "Push upstream to OpenDev failed" + exit 2 +fi + +git checkout $BRANCH +git branch -D delivery_branch