-
-
Notifications
You must be signed in to change notification settings - Fork 4
122 lines (104 loc) · 4.19 KB
/
Copy pathcreate-release.yml
File metadata and controls
122 lines (104 loc) · 4.19 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
name: Create Release
on:
workflow_call:
inputs:
tag_name:
required: true
type: string
artifact_name:
required: false
type: string
default: build-artifacts
workflow_dispatch:
inputs:
tag_name:
description: Release tag to create
required: true
type: string
artifact_name:
description: Artifact name to attach
required: false
default: build-artifacts
permissions:
contents: write
issues: read
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate changelog from issues
id: changelog
uses: janheinrichmerker/action-github-changelog-generator@v2.4
with:
token: ${{ secrets.GITHUB_TOKEN }}
issues: true
pullRequests: false
onlyLastTag: true
excludeLabels: 'duplicate,question,invalid,wontfix'
configureSections: |
{
"features": {
"prefix": "### 🚀 New Features",
"labels": ["feature", "feature auto"]
},
"enhancements": {
"prefix": "### ✨ Enhancements",
"labels": ["enhancement", "enhancement auto"]
},
"bugfixes": {
"prefix": "### 🐛 Fixed Bugs",
"labels": ["bug", "bug auto"]
}
}
output: CHANGELOG.md
- name: Show generated changelog
run: cat CHANGELOG.md
- name: Append installation section
run: |
TAG="${{ inputs.tag_name != '' && inputs.tag_name || github.event.inputs.tag_name }}"
VERSION="${TAG#v}"
cp CHANGELOG.md RELEASE.md
cat <<EOF >> RELEASE.md
---
# Installation
## Windows
Several installer options are available:
| Description | Files |
|-------------|-------|
| **User installer (MSI)** — installs the application **for the current user** | [padxml‑${VERSION}‑x64.msi](https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}-x64.msi)<br>[padxml‑${VERSION}‑x86.msi](https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}-x86.msi) |
| **System installer (MSI)** — installs the application **for all users on the system** | [padxml‑${VERSION}‑x64‑allusers.msi](https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}-x64-allusers.msi)<br>[padxml‑${VERSION}‑x86‑allusers.msi](https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}-x86-allusers.msi) |
| **Portable version** — saves its settings to **form_settings.json** if it is near the executable; otherwise, in the user directory | [padxml‑${VERSION}‑x86‑x64‑portable.zip](https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}-x86-x64-portable.zip) |
## Linux
### *Debian-like systems (Debian, Ubuntu, etc.)*
\`\`\`bash
wget https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}.deb
sudo apt install ./padxml-${VERSION}.deb
\`\`\`
### *RPM-based systems (Fedora, RHEL, CentOS, openSUSE, etc.)*
\`\`\`bash
wget https://github.com/plaintool/padxml/releases/download/${TAG}/padxml-${VERSION}.rpm
sudo rpm -i ./padxml-${VERSION}.rpm
\`\`\`
EOF
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
pattern: ${{ inputs.artifact_name || github.event.inputs.artifact_name }}
path: dist
merge-multiple: true
- name: Create GitHub release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ inputs.tag_name || github.event.inputs.tag_name }}
body_path: RELEASE.md
draft: true
prerelease: false
files: |
dist/**/*.msi
dist/**/*.zip
dist/**/*.deb
dist/**/*.rpm