blob: 7b6fbaaaae855bdbd9c7123820ad45ecd13be644 [file] [log] [blame]
#!/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 Opendaylight
# Pre-requisites for script to run successfully:
# - Author name in Nordix Gerrit equals LFID i.e. need to run "git config --global user.name <LFID>"
# - infra public key on build server needs to be added to your users SSH Public Keys in Opendaylight Gerrit
#
set -o nounset
set -o pipefail
cd $WORKSPACE
echo "Retrieving information from commit to push towards Opendaylight"
project=$(git config --local remote.origin.url | awk -F "29418/opendaylight/" '{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
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@git.opendaylight.org:29418/$project.git"
else
git remote add upstream "ssh://$username@git.opendaylight.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 Opendaylight succeeded"
else
echo "Push upstream to Opendaylight failed"
exit 2
fi
git checkout $BRANCH
git branch -D delivery_branch