Skip to content

Commit fa8e8fa

Browse files
committed
Add release action
Draft a GitHub release when a PR is merged to main. Actual release happens by publishing the draft release in GitHub.
1 parent bb685c6 commit fa8e8fa

File tree

3 files changed

+132
-0
lines changed

3 files changed

+132
-0
lines changed

.github/release-drafter.yml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name-template: "$RESOLVED_VERSION"
2+
tag-template: "v$RESOLVED_VERSION"
3+
4+
template: |
5+
## Muutokset
6+
7+
$CHANGES
8+
9+
**Yksityiskohtaisempi muutosloki**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION
10+
11+
categories:
12+
- title: "🚀 Uudet ominaisuudet"
13+
labels:
14+
- "feature"
15+
- "enhancement"
16+
- title: "🐛 Korjaukset"
17+
labels:
18+
- "fix"
19+
- "bugfix"
20+
- "bug"
21+
- title: "📖 Dokumentaatio"
22+
labels:
23+
- "documentation"
24+
- title: "🧰 Ylläpito"
25+
labels:
26+
- "chore"
27+
- "internal"
28+
29+
exclude-labels:
30+
- "skip-changelog"
31+
32+
change-template: "- $TITLE @$AUTHOR (#$NUMBER)"
33+
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
34+
35+
version-resolver:
36+
major:
37+
labels:
38+
- "major"
39+
- "breaking"
40+
minor:
41+
labels:
42+
- "minor"
43+
- "feature"
44+
- "enhancement"
45+
patch:
46+
labels:
47+
- "patch"
48+
- "fix"
49+
- "bug"
50+
default: patch

.github/workflows/release-drafter.yml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Release Drafter
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
update_release_draft:
13+
name: "📝 Update Release Draft"
14+
permissions:
15+
# write permission is required to create a github release
16+
contents: write
17+
# write permission is required for autolabeler
18+
# otherwise, read permission is required at least
19+
pull-requests: read
20+
runs-on: ubuntu-latest
21+
outputs:
22+
name: ${{ steps.release-drafter.outputs.name }}
23+
tag_name: ${{ steps.release-drafter.outputs.tag_name }}
24+
steps:
25+
# Drafts your next Release notes as Pull Requests are merged into "main"
26+
- uses: release-drafter/release-drafter@v6
27+
id: release-drafter
28+
with:
29+
disable-autolabeler: true
30+
env:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32+
- run: |
33+
echo "name: ${{ steps.release-drafter.outputs.tag_name }}"
34+
echo "tag=${{ steps.release-drafter.outputs.tag_name }}"

.github/workflows/release.yml

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Release
2+
on:
3+
push:
4+
tags:
5+
- v*.*.*
6+
7+
jobs:
8+
release:
9+
runs-on: ubuntu-latest
10+
outputs:
11+
tag: ${{ steps.version.outputs.tag }}
12+
version: ${{ steps.version.outputs.version }}
13+
steps:
14+
- name: version
15+
id: version
16+
run: |
17+
tag=${GITHUB_REF/refs\/tags\//}
18+
version=${tag#v}
19+
echo "tag=${tag}" >> $GITHUB_OUTPUT
20+
echo "version=${version}" >> $GITHUB_OUTPUT
21+
22+
- uses: release-drafter/release-drafter@master
23+
with:
24+
version: ${{ steps.version.outputs.version }}
25+
publish: true
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
29+
deploy:
30+
runs-on: ubuntu-24.04
31+
needs: release
32+
steps:
33+
- name: Checkout
34+
uses: actions/checkout@v4
35+
with:
36+
submodules: recursive
37+
38+
- name: Install dependencies
39+
run: |
40+
sudo apt update && sudo apt install qtbase5-dev qttools5-dev-tools
41+
sudo pip install qgis-plugin-ci --break-system-packages
42+
- name: Release
43+
run: |
44+
qgis-plugin-ci release ${{ needs.release.outputs.version }} \
45+
--release-tag ${{ needs.release.outputs.tag }} \
46+
--disable-submodule-update \
47+
--github-token ${{ secrets.GITHUB_TOKEN }} \
48+
--create-plugin-repo

0 commit comments

Comments
 (0)