Merge "Create jenkins pipeline for k6 performance tests"
[infra/cicd.git] / jjb / global / rebase-jobs.sh
1 #!/bin/bash
2 set -o errexit
3 set -o nounset
4 set -o pipefail
5
6 cd $WORKSPACE
7 # Make sure the Nordix is set from Jenkins Job configuration
8 # parameter: NORDIX_REMOTE and not from previous job execution
9 if git remote | grep nordix > /dev/null ; then
10     git remote rm nordix
11 fi
12 # When the GERRIT_BRANCH is not set the rebase job wasn't triggered by merge
13 # but it's executed as part of timer. In this case we will make sure that all
14 # branches from remote are synced with Nordix Gerrit.
15 if [[ -z "${GERRIT_BRANCH:-}" ]] ; then
16     echo "-- Fetch all ${PROJECT} branches from Gerrit upstream --"
17     REMOTE_BRANCHES=$(git branch -r | grep -v 'HEAD -> ' | awk '/origin/ {gsub("origin/","");print}')
18     for branch in ${REMOTE_BRANCHES}  ; do
19         git branch -f --track ${branch} origin/${branch}
20     done
21 # The job was triggered by merge on upstream Gerrit. We will make sure that branch set
22 # in GERRIT_BRANCH is in sync with Nordix Gerrit.
23 else
24     echo "-- Fetch branch: ${GERRIT_BRANCH} for project: ${PROJECT} --"
25     REMOTE_BRANCHES=${GERRIT_BRANCH}
26     git branch -f --track ${GERRIT_BRANCH} origin/${GERRIT_BRANCH}
27 fi
28 git fetch origin --tags -v
29 echo "-- Adding new remote $NORDIX_REMOTE for sync --"
30 git remote add nordix $NORDIX_REMOTE
31 git remote -v
32 echo "-- Merging changes from Gerrit upstream remote branches to local branch: --"
33 for branch in ${REMOTE_BRANCHES}  ; do
34     echo "--- Branch name: ${branch}"
35     git checkout ${branch} -q -f
36     git merge origin/${branch} --ff-only --stat
37     echo "------ Pushing changes from branch: ${branch} to Nordix Gerrit"
38     git push nordix -v
39     echo "------ Pushing new tags from branch: ${branch} to Nordix Gerrit"
40     git push nordix --tags -f -v
41 done
42 echo "--------------------------------------------------------------------"