spike: creating branches for projects on gitlab from ansible
parent
bf8ed74d3f
commit
7880043ae8
@ -1,5 +1,6 @@
|
||||
.project
|
||||
.idea
|
||||
|
||||
image.tar.gz
|
||||
|
||||
.idea
|
||||
checkout
|
||||
@ -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…
Reference in New Issue