Skip to content
This repository was archived by the owner on Aug 25, 2022. It is now read-only.

Commit 522a20a

Browse files
author
Nikita Chernyi
committed
Visual fixes, added help, added message with changes to new tag, changes length for url
1 parent 7d14c40 commit 522a20a

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

bin

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,55 @@
11
#!/bin/bash
2+
# _ _
3+
# | | | |
4+
# | |__ _ _ _ __ ___ _ __ ___| |__
5+
# | '_ \| | | | '_ ` _ \| '_ \ / __| '_ \
6+
# | |_) | |_| | | | | | | |_) |\__ \ | | |
7+
# |_.__/ \__,_|_| |_| |_| .__(_)___/_| |_|
8+
# | |
9+
# |_|
10+
# by @rakshazi
11+
PREFIX="\033[0;32m[bump.sh]\033[0m"
212

13+
# help
14+
if [[ "$1" == "-h" ]] || [[ "$1" == "--help" ]]; then
15+
echo -e "$PREFIX Release, changelog and merge request generator for GitLab. Usefull magic in one string :)
16+
17+
Usage: `basename $0` [branch_from] [branch_to]
18+
19+
Example: `basename $0` develop master"
20+
exit 0
21+
fi
22+
23+
# Define vars
324
BRANCH_CURRENT=$(git rev-parse --abbrev-ref HEAD)
425
BRANCH_1="${1:-$BRANCH_CURRENT}"
526
BRANCH_2="${2:-master}"
627
CHANGES=$(git log --oneline --no-merges --full-history $BRANCH_1...$BRANCH_2 | sed -u 's/^/\* /g')
7-
DESCRIPTION=$([ ${#CHANGES} -ge 250 ] && echo "See CHANGELOG.md for list of changes" || echo $CHANGES)
8-
PREVIOUS_VERSION=$(git describe --tags $(git rev-list --tags --max-count=1))
28+
DESCRIPTION="${CHANGES:0:1500}...\n\nMore in CHANGELOG.md"
929
REPO_URL=$(git remote get-url origin | sed -u 's/git@//g; s/:/\//g; s/.git//g')
30+
31+
# Fetch origin headers (to avoid duplicates and outdated versions)
32+
echo -e "$PREFIX Fetching tags..."
33+
git fetch --tags --force -q
34+
PREVIOUS_VERSION=$(git describe --tags $(git rev-list --tags --max-count=1))
35+
36+
# Work with user input
1037
printf "CHANGES:\n$CHANGES\n\n"
1138
echo -n "Enter new version (Current branch: $BRANCH_CURRENT | Previous version: $PREVIOUS_VERSION): "
1239
read NEW_VERSION
13-
echo -e "# Release v$NEW_VERSION\n\n$CHANGES\n\n$(cat CHANGELOG.md)" > CHANGELOG.md
40+
41+
# Update changelog
42+
echo -e "# Release v[$NEW_VERSION]($REPO_URL/tags/$NEW_VERSION)\n\n$CHANGES\n\n$(cat CHANGELOG.md)" > CHANGELOG.md
1443
git add CHANGELOG.md
15-
git commit -m "Release v$NEW_VERSION"
16-
git tag $NEW_VERSION
17-
git push origin --tags
44+
git commit -m -q "Release v$NEW_VERSION"
45+
46+
# Create new tag with changes
47+
git tag $NEW_VERSION -q -m $"$CHANGES"
48+
echo -e "$PREFIX Pushing..."
49+
50+
# Push changes with new tag
51+
git push origin --follow-tags
52+
53+
# Open merge request url with preset changes
1854
xdg-open "$REPO_URL/merge_requests/new?utf8=✓&merge_request[source_branch]=$BRANCH_1&merge_request[target_branch]=$BRANCH_2&merge_request[title]=$NEW_VERSION&merge_request[description]=$DESCRIPTION"
55+
echo -e "$PREFIX Don't forget to notify your teammates about new release!"

0 commit comments

Comments
 (0)