From: robert.tomczyk Date: Wed, 25 Sep 2019 08:31:57 +0000 (+0100) Subject: Remove code duplication - single global rebase-jobs.sh script X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;ds=sidebyside;h=3459cae8bed399c62af4fd9109c61a3e2edf51b9;hp=-c;p=infra%2Fcicd.git Remove code duplication - single global rebase-jobs.sh script Change-Id: I8accc5038188a81d9ce79142a25072395508a98d --- 3459cae8bed399c62af4fd9109c61a3e2edf51b9 diff --git a/jjb/acumos/global-templates-acumos-rebase.yaml b/jjb/acumos/global-templates-acumos-rebase.yaml index 3d33b2fb..d4c176d1 100644 --- a/jjb/acumos/global-templates-acumos-rebase.yaml +++ b/jjb/acumos/global-templates-acumos-rebase.yaml @@ -42,7 +42,7 @@ builders: - shell: - !include-raw-escape: ./rebase-jobs.sh + !include-raw-escape: ../global/rebase-jobs.sh publishers: - notify-slack: diff --git a/jjb/acumos/rebase-jobs.sh b/jjb/acumos/rebase-jobs.sh deleted file mode 100755 index 41c2aa37..00000000 --- a/jjb/acumos/rebase-jobs.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -cd $WORKSPACE -# Make sure the Nordix is set from Jenkins Job configuration -# parameter: NORDIX_REMOTE and not from previous job execution -if git remote | grep nordix > /dev/null ; then - git remote rm nordix -fi -# When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge -# but it's executed as part of timer. In this case we will make sure that all -# branches from remote are synced with Nordix Gerrit. -if [[ -z "${GERRIT_BRANCH:-}" ]] ; then - echo "-- Fetch all branches from Acumos for project: ${PROJECT} --" - REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}') - for branch in ${REMOTE_BRANCHES} ; do - git branch -f --track ${branch} origin/${branch} - done -# The job was triggered by merge on Acumos. We will make sure that branch set -# in GERRIT_BRANCH is in sync with Nordix Gerrit. -else - echo "-- Fetch branch: ${GERRIT_BRANCH} from Acumos for project: ${PROJECT} --" - REMOTE_BRANCHES=${GERRIT_BRANCH} - git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH} -fi -git fetch origin -v -echo "-- Adding new remote $NORDIX_REMOTE for sync --" -git remote add nordix $NORDIX_REMOTE -git remote -v -echo "-- Merging changes from Acumos remote branches to local branch: --" -for branch in ${REMOTE_BRANCHES} ; do - echo "------ Branch name: ${branch}" - git checkout ${branch} -q - git merge origin/${branch} --ff-only --stat -done -echo "-- Pushing changes to Nordix Gerrit --" -git push nordix --all -v -echo "--------------------------------------------------------------------" diff --git a/jjb/global/rebase-jobs.sh b/jjb/global/rebase-jobs.sh old mode 100755 new mode 100644 index b2f77378..f124691a --- a/jjb/global/rebase-jobs.sh +++ b/jjb/global/rebase-jobs.sh @@ -4,17 +4,37 @@ set -o nounset set -o pipefail cd $WORKSPACE -echo "Checking out $BRANCH" -git checkout $BRANCH -q -git pull -q -echo "Commit is" -echo "-------------------------------------------" -git show -s -echo "-------------------------------------------" -echo "Adding new remote $NORDIX_REMOTE for sync" +# Make sure the Nordix is set from Jenkins Job configuration +# parameter: NORDIX_REMOTE and not from previous job execution +if git remote | grep nordix > /dev/null ; then + git remote rm nordix +fi +# When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge +# but it's executed as part of timer. In this case we will make sure that all +# branches from remote are synced with Nordix Gerrit. +if [[ -z "${GERRIT_BRANCH:-}" ]] ; then + echo "-- Fetch all ${PROJECT} branches from Gerrit upstream --" + REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}') + for branch in ${REMOTE_BRANCHES} ; do + git branch -f --track ${branch} origin/${branch} + done +# The job was triggered by merge on upstream Gerrit. We will make sure that branch set +# in GERRIT_BRANCH is in sync with Nordix Gerrit. +else + echo "-- Fetch branch: ${GERRIT_BRANCH} for project: ${PROJECT} --" + REMOTE_BRANCHES=${GERRIT_BRANCH} + git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH} +fi +git fetch origin -v +echo "-- Adding new remote $NORDIX_REMOTE for sync --" git remote add nordix $NORDIX_REMOTE -echo "-------------------------------------------" git remote -v -echo "-------------------------------------------" -echo "Pushing changes to Nordix branch $BRANCH" -git push nordix $BRANCH +echo "-- Merging changes from Gerrit upstream remote branches to local branch: --" +for branch in ${REMOTE_BRANCHES} ; do + echo "------ Branch name: ${branch}" + git checkout ${branch} -q -f + git merge origin/${branch} --ff-only --stat +done +echo "-- Pushing changes to Nordix Gerrit --" +git push nordix --all -v +echo "--------------------------------------------------------------------" diff --git a/jjb/onap/global-templates-onap-rebase.yaml b/jjb/onap/global-templates-onap-rebase.yaml index acb47909..723190a4 100644 --- a/jjb/onap/global-templates-onap-rebase.yaml +++ b/jjb/onap/global-templates-onap-rebase.yaml @@ -42,7 +42,7 @@ builders: - shell: - !include-raw-escape: ./rebase-jobs.sh + !include-raw-escape: ../global/rebase-jobs.sh publishers: - notify-slack: diff --git a/jjb/onap/rebase-jobs.sh b/jjb/onap/rebase-jobs.sh deleted file mode 100755 index d8a98229..00000000 --- a/jjb/onap/rebase-jobs.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -cd $WORKSPACE -# Make sure the Nordix is set from Jenkins Job configuration -# parameter: NORDIX_REMOTE and not from previous job execution -if git remote | grep nordix > /dev/null ; then - git remote rm nordix -fi -# When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge -# but it's executed as part of timer. In this case we will make sure that all -# branches from remote are synced with Nordix Gerrit. -if [[ -z "${GERRIT_BRANCH:-}" ]] ; then - echo "-- Fetch all branches from ONAP for project: ${PROJECT} --" - REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}') - for branch in ${REMOTE_BRANCHES} ; do - git branch -f --track ${branch} origin/${branch} - done -# The job was triggered by merge on ONAP Gerrit. We will make sure that branch set -# in GERRIT_BRANCH is in sync with Nordix Gerrit. -else - echo "-- Fetch branch: ${GERRIT_BRANCH} from ONAP for project: ${PROJECT} --" - REMOTE_BRANCHES=${GERRIT_BRANCH} - git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH} -fi -git fetch origin -v -echo "-- Adding new remote $NORDIX_REMOTE for sync --" -git remote add nordix $NORDIX_REMOTE -git remote -v -echo "-- Merging changes from ONAP remote branches to local branch: --" -for branch in ${REMOTE_BRANCHES} ; do - echo "------ Branch name: ${branch}" - git checkout ${branch} -q -f - git merge origin/${branch} --ff-only --stat -done -echo "-- Pushing changes to Nordix Gerrit --" -git push nordix --all -v -echo "--------------------------------------------------------------------" diff --git a/jjb/opendaylight/global-templates-opendaylight-rebase.yaml b/jjb/opendaylight/global-templates-opendaylight-rebase.yaml index 3c03959d..71be8982 100644 --- a/jjb/opendaylight/global-templates-opendaylight-rebase.yaml +++ b/jjb/opendaylight/global-templates-opendaylight-rebase.yaml @@ -42,7 +42,7 @@ builders: - shell: - !include-raw-escape: ./rebase-jobs.sh + !include-raw-escape: ../global/rebase-jobs.sh publishers: - notify-slack: diff --git a/jjb/opendaylight/rebase-jobs.sh b/jjb/opendaylight/rebase-jobs.sh deleted file mode 100755 index 8cec63a0..00000000 --- a/jjb/opendaylight/rebase-jobs.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -cd $WORKSPACE -# Make sure the Nordix is set from Jenkins Job configuration -# parameter: NORDIX_REMOTE and not from previous job execution -if git remote | grep nordix > /dev/null ; then - git remote rm nordix -fi -# When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge -# but it's executed as part of timer. In this case we will make sure that all -# branches from remote are synced with Nordix Gerrit. -if [[ -z "${GERRIT_BRANCH:-}" ]] ; then - echo "-- Fetch all branches from OpenDaylight for project: ${PROJECT} --" - REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}') - for branch in ${REMOTE_BRANCHES} ; do - git branch -f --track ${branch} origin/${branch} - done -# The job was triggered by merge on OpenDaylight. We will make sure that branch set -# in GERRIT_BRANCH is in sync with Nordix Gerrit. -else - echo "-- Fetch branch: ${GERRIT_BRANCH} from OpenDaylight for project: ${PROJECT} --" - REMOTE_BRANCHES=${GERRIT_BRANCH} - git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH} -fi -git fetch origin -v -echo "-- Adding new remote $NORDIX_REMOTE for sync --" -git remote add nordix $NORDIX_REMOTE -git remote -v -echo "-- Merging changes from OpenDaylight remote branches to local branch: --" -for branch in ${REMOTE_BRANCHES} ; do - echo "------ Branch name: ${branch}" - git checkout ${branch} -q - git merge origin/${branch} --ff-only --stat -done -echo "-- Pushing changes to Nordix Gerrit --" -git push nordix --all -v -echo "--------------------------------------------------------------------" diff --git a/jjb/opendev/global-templates-opendev-rebase.yaml b/jjb/opendev/global-templates-opendev-rebase.yaml index cadfefd5..c8784ae2 100644 --- a/jjb/opendev/global-templates-opendev-rebase.yaml +++ b/jjb/opendev/global-templates-opendev-rebase.yaml @@ -42,7 +42,7 @@ builders: - shell: - !include-raw-escape: ./rebase-jobs.sh + !include-raw-escape: ../global/rebase-jobs.sh publishers: - notify-slack: diff --git a/jjb/opendev/rebase-jobs.sh b/jjb/opendev/rebase-jobs.sh deleted file mode 100755 index 90b84c22..00000000 --- a/jjb/opendev/rebase-jobs.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -cd $WORKSPACE -# Make sure the Nordix is set from Jenkins Job configuration -# parameter: NORDIX_REMOTE and not from previous job execution -if git remote | grep nordix > /dev/null ; then - git remote rm nordix -fi -# When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge -# but it's executed as part of timer. In this case we will make sure that all -# branches from remote are synced with Nordix Gerrit. -if [[ -z "${GERRIT_BRANCH:-}" ]] ; then - echo "-- Fetch all branches from OpenDev for project: ${PROJECT} --" - REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}') - for branch in ${REMOTE_BRANCHES} ; do - git branch -f --track ${branch} origin/${branch} - done -# The job was triggered by merge on OpenDev. We will make sure that branch set -# in GERRIT_BRANCH is in sync with Nordix Gerrit. -else - echo "-- Fetch branch: ${GERRIT_BRANCH} from OpenDev for project: ${PROJECT} --" - REMOTE_BRANCHES=${GERRIT_BRANCH} - git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH} -fi -git fetch origin -v -echo "-- Adding new remote $NORDIX_REMOTE for sync --" -git remote add nordix $NORDIX_REMOTE -git remote -v -echo "-- Merging changes from OpenDev remote branches to local branch: --" -for branch in ${REMOTE_BRANCHES} ; do - echo "------ Branch name: ${branch}" - git checkout ${branch} -q - git merge origin/${branch} --ff-only --stat -done -echo "-- Pushing changes to Nordix Gerrit --" -git push nordix --all -v -echo "--------------------------------------------------------------------" diff --git a/jjb/oransc/global-templates-oran-rebase.yaml b/jjb/oransc/global-templates-oran-rebase.yaml index 60175bf4..f1e909a0 100644 --- a/jjb/oransc/global-templates-oran-rebase.yaml +++ b/jjb/oransc/global-templates-oran-rebase.yaml @@ -39,7 +39,7 @@ builders: - shell: - !include-raw-escape: ./rebase-jobs.sh + !include-raw-escape: ../global/rebase-jobs.sh publishers: - notify-slack: diff --git a/jjb/oransc/rebase-jobs.sh b/jjb/oransc/rebase-jobs.sh deleted file mode 100755 index d5c90e43..00000000 --- a/jjb/oransc/rebase-jobs.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -cd $WORKSPACE -# Make sure the Nordix is set from Jenkins Job configuration -# parameter: NORDIX_REMOTE and not from previous job execution -if git remote | grep nordix > /dev/null ; then - git remote rm nordix -fi -# When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge -# but it's executed as part of timer. In this case we will make sure that all -# branches from remote are synced with Nordix Gerrit. -if [[ -z "${GERRIT_BRANCH:-}" ]] ; then - echo "-- Fetch all branches from ORAN Gerrit for project: ${PROJECT} --" - REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}') - for branch in ${REMOTE_BRANCHES} ; do - git branch -f --track ${branch} origin/${branch} - done -# The job was triggered by merge on ORAN Gerrit. We will make sure that branch set -# in GERRIT_BRANCH is in sync with Nordix Gerrit. -else - echo "-- Fetch branch: ${GERRIT_BRANCH} from ORAN Gerrit for project: ${PROJECT} --" - REMOTE_BRANCHES=${GERRIT_BRANCH} - git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH} -fi -git fetch origin -v -echo "-- Adding new remote $NORDIX_REMOTE for sync --" -git remote add nordix $NORDIX_REMOTE -git remote -v -echo "-- Merging changes from ORAN remote branches to local branch: --" -for branch in ${REMOTE_BRANCHES} ; do - echo "------ Branch name: ${branch}" - git checkout ${branch} -q -f - git merge origin/${branch} --ff-only --stat -done -echo "-- Pushing changes to Nordix Gerrit --" -git push nordix --all -v -echo "--------------------------------------------------------------------"