X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng%2Freleng-release-create-branch.sh;h=7e91d5ace916b8380e486827fb86bc2f8d4c8d99;hb=52d29ad095ad729a0287ec07a2c19072b4fb672b;hp=663ff19e73f9e0bc879e2663924f66ef868baab4;hpb=1569d338abfadc2a851e7f842c3fcc22e2d7998d;p=releng.git diff --git a/jjb/releng/releng-release-create-branch.sh b/jjb/releng/releng-release-create-branch.sh index 663ff19e7..7e91d5ace 100644 --- a/jjb/releng/releng-release-create-branch.sh +++ b/jjb/releng/releng-release-create-branch.sh @@ -9,6 +9,10 @@ ############################################################################## set -xe +GIT_URL=${GIT_URL:-https://gerrit.opnfv.org/gerrit} +STREAM=${STREAM:-'nostream'} +RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") + # Configure the git user/email as we'll be pushing up changes git config --global user.name "jenkins-ci" git config --global user.email "jenkins-opnfv-ci@opnfv.org" @@ -17,34 +21,53 @@ git config --global user.email "jenkins-opnfv-ci@opnfv.org" curl -kLo .git/hooks/commit-msg https://gerrit.opnfv.org/gerrit/tools/hooks/commit-msg chmod +x .git/hooks/commit-msg -# Activate virtualenv, supressing shellcheck warning -# shellcheck source=/dev/null -. $WORKSPACE/venv/bin/activate -pip install -r releases/scripts/requirements.txt +clone_repo(){ +echo "--> Cloning $repo" +if [ ! -d $repo ]; then + git clone $GIT_URL/$repo.git $repo +fi +} -STREAM=${STREAM:-'nostream'} -RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") +check_if_ref_exists(){ +clone_repo +cd "$repo" +if git rev-list refs/heads/master | grep "$ref"; then + echo "$ref exists" + REF_EXISTS=true + cd - +else + echo "$ref Does not exist please submit a valid ref for branching" + exit 1 +fi +} -for release_file in $RELEASE_FILES; do +run_merge(){ +unset NEW_FILES +if [[ $REF_EXISTS = true && "$JOB_NAME" =~ "merge" ]]; then + ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" + python releases/scripts/create_jobs.py -f $release_file + NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-) +fi +if [ -n "$NEW_FILES" ]; then + git add $NEW_FILES + git commit -sm "Create Stable Branch Jobs for $(basename $release_file .yaml)" + git push origin HEAD:refs/for/master +fi +} +main(){ +for release_file in $RELEASE_FILES; do while read -r repo branch ref; do - echo "$repo" "$branch" "$ref" branches="$(git ls-remote "https://gerrit.opnfv.org/gerrit/$repo.git" "refs/heads/$branch")" - if ! [ -z "$branches" ]; then echo "refs/heads/$branch already exists at $ref ($branches)" else - ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" + run_merge fi - done < <(python releases/scripts/repos.py -b -f "$release_file") - - python releases/scripts/create_jobs.py -f $release_file - NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-) - if [ -n "$NEW_FILES" ]; then - git add $NEW_FILES - git commit -sm "Create Stable Branch Jobs for $(basename $release_file .yaml)" - git push origin HEAD:refs/for/master - fi done +} + +check_if_ref_exists +main