-
Notifications
You must be signed in to change notification settings - Fork 0
/
release.sh
58 lines (47 loc) · 1.6 KB
/
release.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env bash
SCOPE="$1"
if [ -z "$SCOPE" ]; then
SCOPE="auto"
fi
echo "Using scope $SCOPE"
# We get the next version, without tagging
echo "Getting next version"
nextversion="$(source semtag final -fos $SCOPE)"
echo "Publishing with version: $nextversion"
# Build changelog
printf "# CHANGELOG\n\n" > CHANGELOG.md
printf "[Version: v0.0.1]\n\n" >> CHANGELOG.md
./change-log-builder.sh >> CHANGELOG.md
# Build CONTRIBUTING
printf "# CONTRIBUTORS\n\n" > CONTRIBUTORS.md
printf "[Version: v0.0.1]\n\n" >> CONTRIBUTORS.md
git log --all --format="- %aN <%aE>" | sort -u >> CONTRIBUTORS.md
# We replace the placeholder in the source with the new version
replace="s/^PROG_VERSION=\"[^\"]*\"/PROG_VERSION=\"$nextversion\"/g"
sed -i.bak $replace semtag
# We replace the version in the README file with the new version
replace="s/version-[^-]*-/version-$nextversion-/g"
sed -i.bak "$replace" README.md
replace="s/^\[Version: [^[]*]/[Version: $nextversion]/g"
sed -i.bak "$replace" CHANGELOG.md
sed -i.bak "$replace" CONTRIBUTORS.md
# We remove the backup README.md generated by the sed command
rm semtag.bak
rm README.md.bak
rm CHANGELOG.md.bak
rm CONTRIBUTORS.md.bak
# We add both changed files
if ! git add semtag README.md CHANGELOG.md CONTRIBUTORS.md ; then
echo "Error adding modified files with new version"
exit 1
fi
if ! git commit -m "Update readme and info to $nextversion" ; then
echo "Error committing modified files with new version"
exit 1
fi
if ! git push ; then
echo "Error pushing modified files with new version"
exit 1
fi
# We update the tag with the new version
source semtag final -f -v $nextversion