-
-
Notifications
You must be signed in to change notification settings - Fork 0
79 lines (61 loc) · 2.31 KB
/
release.yml
File metadata and controls
79 lines (61 loc) · 2.31 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
name: Create Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
name: Create GitHub Release
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for all tags
- name: Set current tag
run: echo "CURRENT_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Get previous tag
id: previoustag
run: |
# Get the latest tag that is not the current tag
PREVIOUS_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --skip=1 --max-count=1) 2>/dev/null)
if [ $? -ne 0 ]; then
echo "No previous tag found. Using first commit."
# Use the hash of the very first commit if no previous tag is found
PREVIOUS_TAG=$(git rev-list --max-parents=0 HEAD)
fi
echo "previous_tag=$PREVIOUS_TAG" >> $GITHUB_ENV
echo "Previous tag: $PREVIOUS_TAG"
- name: Generate Release Notes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PREVIOUS_TAG: ${{ env.previous_tag }}
GITHUB_REPOSITORY: ${{ github.repository }}
run: |
RELEASE_BODY="**Open Translation Engine (OTE) $CURRENT_TAG**
A collaborative translation dictionary manager.
https://github.com/$GITHUB_REPOSITORY"
# Generate changelog
CHANGELOG=$(git log --pretty=format:"* %s (%h)" $PREVIOUS_TAG..$CURRENT_TAG)
if [ -n "$CHANGELOG" ]; then
RELEASE_BODY="${RELEASE_BODY}
**Changelog**:
${CHANGELOG}
"
fi
# Add link to compare with previous version
RELEASE_BODY="${RELEASE_BODY}
See all commits since last release: https://github.com/$GITHUB_REPOSITORY/compare/${PREVIOUS_TAG}...${CURRENT_TAG}"
echo "RELEASENOTES<<EOF" >> $GITHUB_ENV
echo -e "$RELEASE_BODY" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.CURRENT_TAG }}
name: "Open Translation Engine (OTE) ${{ env.CURRENT_TAG }}"
body: ${{ env.RELEASENOTES }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}