@@ -3,18 +3,28 @@ name: Build & Release Executable
3
3
on :
4
4
push :
5
5
branches :
6
- - main # Runs on each push to main
6
+ - main # Runs only on push to main
7
7
workflow_dispatch : # Allow manual trigger
8
8
9
9
jobs :
10
10
build :
11
- # if: github.event.pull_request.merged == true # Ensures it's a merge
12
- runs-on : windows-2019
11
+ runs-on : windows-latest
13
12
14
13
steps :
15
14
- name : Checkout Repository
16
15
uses : actions/checkout@v4
17
16
17
+ - name : Check if Commit is from Merged PR
18
+ id : check_merge
19
+ run : |
20
+ gh api repos/${{ github.repository }}/commits/${{ github.sha }}/pulls > pulls.json
21
+ if jq 'length == 0' pulls.json; then
22
+ echo "This commit is not from a merged PR. Skipping workflow."
23
+ exit 1
24
+ fi
25
+ env :
26
+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
27
+
18
28
- name : Set up Python
19
29
uses : actions/setup-python@v4
20
30
with :
@@ -38,15 +48,21 @@ jobs:
38
48
39
49
- name : Get Last Commit Hash
40
50
id : get_commit
51
+ run : echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
52
+
53
+ - name : Create Tag
41
54
run : |
42
- echo "commit_hash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
55
+ git tag ${{ env.COMMIT_HASH }}
56
+ git push origin ${{ env.COMMIT_HASH }}
57
+ env :
58
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
43
59
44
60
- name : Create GitHub Release
45
61
uses : softprops/action-gh-release@v2
46
62
with :
47
63
token : ${{ secrets.GITHUB_TOKEN }}
48
- tag_name : ${{ env.commit_hash }}
49
- release_name : ${{ env.commit_hash }}
64
+ tag_name : ${{ env.COMMIT_HASH }}
65
+ name : Release ${{ env.COMMIT_HASH }} # Corrected 'release_name' to 'name'
50
66
draft : false
51
67
prerelease : false
52
68
files : |
0 commit comments