-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrelease.sh
More file actions
executable file
·54 lines (43 loc) · 1.18 KB
/
release.sh
File metadata and controls
executable file
·54 lines (43 loc) · 1.18 KB
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
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
REMOTE="origin"
TAG_PREFIX="tag."
DATE=$(date +%Y%m%d)
TAG="${TAG_PREFIX}${DATE}"
REPO="hokkien-writing/rime-teochew"
BUILD_DIR="build"
if git tag -l "$TAG" | grep -q .; then
PREV_TAG=$(git tag --sort=-v:refname | sed -n '2p')
else
PREV_TAG=$(git tag --sort=-v:refname | head -1)
fi
if [ -n "$PREV_TAG" ]; then
NOTES=$(git log "${PREV_TAG}"..HEAD --pretty=format:"- %s")
else
NOTES=$(git log --pretty=format:"- %s")
fi
if [ -z "$NOTES" ]; then
NOTES="No changes since last release."
fi
echo "==> Building..."
bash build.sh
if git tag -l "$TAG" | grep -q .; then
echo "==> Tag $TAG already exists, deleting..."
if gh release view "$TAG" --repo "$REPO" &>/dev/null; then
gh release delete "$TAG" --repo "$REPO" --yes
fi
git push "$REMOTE" --delete "$TAG" 2>/dev/null || true
git tag -d "$TAG"
fi
echo "==> Creating tag: $TAG"
git tag "$TAG"
echo "==> Pushing tag to $REMOTE..."
git push "$REMOTE" "$TAG"
echo "==> Creating GitHub release..."
gh release create "$TAG" \
--repo "$REPO" \
--title "$TAG" \
--notes "$NOTES" \
${BUILD_DIR}/*.zip
echo "==> Done! Release $TAG created."