Skip to content

Commit 7e9b51b

Browse files
committed
Init release workflow
1 parent f3a46f3 commit 7e9b51b

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

.github/workflows/release.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Create release
2+
on:
3+
pull_request:
4+
types:
5+
- closed
6+
7+
jobs:
8+
semantic-version:
9+
if: github.event.pull_request.merged
10+
name: Get next version numbers
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout repo
14+
uses: actions/checkout@v3
15+
with:
16+
fetch-depth: 0
17+
- name: Get previous tag
18+
id: previous_tag
19+
uses: "WyriHaximus/github-action-get-previous-tag@v1"
20+
with:
21+
fallback: 0.0.1
22+
- name: Get next minor version
23+
id: semver
24+
uses: "WyriHaximus/github-action-next-semvers@v1"
25+
with:
26+
version: ${{ steps.previous_tag.outputs.tag }}
27+
outputs:
28+
v_patch: ${{ steps.semver.outputs.v_patch }}
29+
v_minor: ${{ steps.semver.outputs.v_minor }}
30+
31+
determine-release:
32+
name: Release type
33+
needs: semantic-version
34+
runs-on: ubuntu-latest
35+
continue-on-error: true
36+
strategy:
37+
matrix:
38+
labels: ["bug,patch", "feature,minor"]
39+
include:
40+
- labels: "bug,patch"
41+
version: "${{ needs.semantic-version.outputs.v_patch }}"
42+
- labels: "feature,minor"
43+
version: "${{ needs.semantic-version.outputs.v_minor }}"
44+
steps:
45+
- name: Check labels
46+
uses: docker://agilepathway/pull-request-label-checker:latest
47+
id: label_check
48+
with:
49+
any_of: ${{ matrix.labels }}
50+
repo_token: ${{ secrets.GITHUB_TOKEN }}
51+
- name: Set version
52+
id: set_version
53+
run: echo "version=${{ matrix.version }}" >> $GITHUB_OUTPUT
54+
outputs:
55+
version: ${{ steps.set_version.outputs.version }}
56+
57+
release:
58+
name: Create release
59+
needs: determine-release
60+
runs-on: ubuntu-latest
61+
steps:
62+
- uses: actions/checkout@v3
63+
- uses: softprops/action-gh-release@v1
64+
with:
65+
tag_name: ${{ needs.determine-release.outputs.version }}
66+
name: ${{ needs.determine-release.outputs.version }}
67+
generate_release_notes: true
68+
token: ${{ secrets.MY_TOKEN }}

0 commit comments

Comments
 (0)