spike: creating branches for projects on gitlab from ansible

master
Sven Ketelsen 5 years ago
parent bf8ed74d3f
commit 7880043ae8

3
.gitignore vendored

@ -1,5 +1,6 @@
.project
.idea
image.tar.gz
.idea
checkout

@ -2,4 +2,3 @@ python38-devel [platform:rpm compile]
subversion [platform:rpm]
subversion [platform:dpkg]
git-lfs [platform:rpm]

@ -0,0 +1,24 @@
- hosts: localhost
connection: local
gather_facts: false
vars:
repository: "git@git.dev-at.de:smardigo/maven/smardigo-maven-versions.git"
branch_type: "spike"
branch_ticket: "TST-0001"
pre_tasks:
- name: "Checkout git repository"
ansible.builtin.git:
repo: "{{ repository }}"
dest: "./checkout"
version: "master"
- name: "Insert/Update branch configuration"
template:
src: 'create-branch-maven.j2'
dest: './checkout/.ci_create-branch-maven'
- name: "Branching project"
shell: ". .ci_create-branch-maven"
args:
chdir: "./checkout"

@ -0,0 +1,39 @@
#!/bin/bash
if [ -n "$(git diff-index HEAD)" ];
then
echo "branch creation isn't allowed with working tree changes"
else
BRANCH_CURRENT=$(git rev-parse --abbrev-ref HEAD)
git fetch -q
COMMIT_ID_BRANCH_CURRENT=$(git rev-parse $BRANCH_CURRENT)
COMMIT_ID_REMOTE_BRANCH_CURRENT=$(git rev-parse origin/$BRANCH_CURRENT)
if [ "$COMMIT_ID_BRANCH_CURRENT" != "$COMMIT_ID_REMOTE_BRANCH_CURRENT" ];
then
echo "branch creation isn't allowed with changes between $BRANCH_CURRENT and origin/$BRANCH_CURRENT"
else
TYPE={{ branch_type }}
TICKET={{ branch_ticket }}
BRANCH_NEXT=$TYPE/$TICKET
VERSION_LAST=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
VERSION=$(echo $VERSION_LAST | cut -d '-' -f 1)
VERSION_MAJOR=$(echo $VERSION_LAST | cut -d'.' -f 1)
VERSION_MINOR=$(echo $VERSION_LAST | cut -d'.' -f 2)
VERSION_BUGFIX=$(echo $VERSION_LAST | cut -d'.' -f 3)
VERSION_NEXT="${VERSION}-${TICKET}-1-SNAPSHOT"
git checkout -b $BRANCH_NEXT
./mvnw versions:set -DnewVersion=$VERSION_NEXT -DgenerateBackupPoms=false
git commit -n -am "created branch ${BRANCH_NEXT}"
git checkout ${BRANCH_CURRENT}
git merge -s ours -m "merge branch ${BRANCH_NEXT} into ${BRANCH_CURRENT} [skip ci]" $BRANCH_NEXT
git checkout $BRANCH_NEXT
git push -u origin $BRANCH_NEXT
git push origin $BRANCH_CURRENT
fi
fi
Loading…
Cancel
Save