@@ -16,16 +16,47 @@ jobs:
16
16
steps :
17
17
- name : Checkout
18
18
uses : actions/checkout@v4
19
-
19
+
20
+ - name : Check Build Flags First
21
+ id : check_flags
22
+ run : |
23
+ MESSAGE=$(git log -1 --pretty=%B)
24
+ echo "Last commit message: $MESSAGE"
25
+
26
+ if echo "$MESSAGE" | grep -qE "\[skip-ci\]|\[no-ci\]"; then
27
+ echo "Detected skip CI flag, setting both platforms to false"
28
+ echo "run_linux=false" >> $GITHUB_OUTPUT
29
+ echo "run_windows=false" >> $GITHUB_OUTPUT
30
+ echo "skip_version_bump=true" >> $GITHUB_OUTPUT
31
+ else
32
+ if echo "$MESSAGE" | grep -q "\[no-linux\]"; then
33
+ echo "Skipping Linux build"
34
+ echo "run_linux=false" >> $GITHUB_OUTPUT
35
+ else
36
+ echo "Running Linux build"
37
+ echo "run_linux=true" >> $GITHUB_OUTPUT
38
+ fi
39
+
40
+ if echo "$MESSAGE" | grep -q "\[no-win\]"; then
41
+ echo "Skipping Windows build"
42
+ echo "run_windows=false" >> $GITHUB_OUTPUT
43
+ else
44
+ echo "Running Windows build"
45
+ echo "run_windows=true" >> $GITHUB_OUTPUT
46
+ fi
47
+ echo "skip_version_bump=false" >> $GITHUB_OUTPUT
48
+ fi
49
+
20
50
- name : Increment APP_VERSION
51
+ if : steps.check_flags.outputs.skip_version_bump != 'true'
21
52
run : |
22
53
VERSION=$(cat APP_VERSION)
23
54
BASE=$(echo "$VERSION" | sed 's/-.*//')
24
55
SUFFIX=$(echo "$VERSION" | grep -oP '(?<=-).*' || echo "")
25
56
IFS='.' read -r -a PARTS <<< "$BASE"
26
-
57
+
27
58
LAST_COMMIT_MESSAGE=$(git log -1 --pretty=%B)
28
-
59
+
29
60
if echo "$LAST_COMMIT_MESSAGE" | grep -q "\[MAJOR\]"; then
30
61
PARTS[0]=$((PARTS[0]+1))
31
62
PARTS[1]=0
@@ -36,62 +67,37 @@ jobs:
36
67
elif echo "$LAST_COMMIT_MESSAGE" | grep -q "\[PATCH\]"; then
37
68
PARTS[2]=$((PARTS[2]+1))
38
69
fi
39
-
70
+
40
71
PARTS[3]=$((PARTS[3]+1)) # always bump build number
41
-
72
+
42
73
NEW_VERSION="${PARTS[0]}.${PARTS[1]}.${PARTS[2]}.${PARTS[3]}"
43
74
if [ -n "$SUFFIX" ]; then
44
75
NEW_VERSION="$NEW_VERSION-$SUFFIX"
45
76
fi
46
77
echo "$NEW_VERSION" > APP_VERSION
78
+
47
79
- name : Bump resource.rc
80
+ if : steps.check_flags.outputs.skip_version_bump != 'true'
48
81
run : |
49
82
cd scripts/shared
50
83
python3 updateversion.py
51
84
cd ../..
52
85
53
86
- name : Commit updated APP_VERSION
87
+ if : steps.check_flags.outputs.skip_version_bump != 'true'
54
88
run : |
55
89
git config user.name "github-actions[bot]"
56
90
git config user.email "github-actions[bot]@users.noreply.github.com"
57
91
git add APP_VERSION
58
92
git add resource.rc
59
93
git commit -m "ci: bump version"
60
94
git push
61
-
95
+
62
96
- name : Get Version
63
97
id : get_version
64
98
run : |
65
99
echo "version=$(cat APP_VERSION)" >> $GITHUB_OUTPUT
66
-
67
- - name : Check Build Flags
68
- id : check_flags
69
- run : |
70
- MESSAGE=$(git log -1 --pretty=%B)
71
- echo "Last commit message: $MESSAGE"
72
-
73
- if echo "$MESSAGE" | grep -qE "\[skip-ci\]|\[no-ci\]"; then
74
- echo "Detected skip CI flag, setting both platforms to false"
75
- echo "run_linux=false" >> $GITHUB_OUTPUT
76
- echo "run_windows=false" >> $GITHUB_OUTPUT
77
- else
78
- if echo "$MESSAGE" | grep -q "\[no-linux\]"; then
79
- echo "Skipping Linux build"
80
- echo "run_linux=false" >> $GITHUB_OUTPUT
81
- else
82
- echo "Running Linux build"
83
- echo "run_linux=true" >> $GITHUB_OUTPUT
84
- fi
85
-
86
- if echo "$MESSAGE" | grep -q "\[no-win\]"; then
87
- echo "Skipping Windows build"
88
- echo "run_windows=false" >> $GITHUB_OUTPUT
89
- else
90
- echo "Running Windows build"
91
- echo "run_windows=true" >> $GITHUB_OUTPUT
92
- fi
93
- fi
94
-
100
+
95
101
windows_build :
96
102
needs : prebuild
97
103
if : needs.prebuild.outputs.run_windows == 'true'
0 commit comments