11
11
build-changelog :
12
12
description : " Build Changelog"
13
13
value : ${{ jobs.build-details.outputs.build-changelog }}
14
+ build-flavor :
15
+ description : " Build Flavor"
16
+ value : ${{ jobs.build-details.outputs.build-flavor }}
14
17
build-number :
15
18
description : " Build Number"
16
19
value : ${{ jobs.build-details.outputs.build-number }}
20
23
build-version :
21
24
description : " Build Version"
22
25
value : ${{ jobs.build-details.outputs.build-version }}
23
- enable-android :
24
- description : " Is Android Enabled?"
25
- value : ${{ jobs.platform-list.outputs.android }}
26
- enable-ios :
27
- description : " Is iOS Enabled?"
28
- value : ${{ jobs.platform-list.outputs.ios }}
29
- enable-linux :
30
- description : " Is Linux Enabled?"
31
- value : ${{ jobs.platform-list.outputs.linux }}
32
- enable-macos :
33
- description : " Is macOS Enabled?"
34
- value : ${{ jobs.platform-list.outputs.macos }}
35
- enable-windows :
36
- description : " Is Windows Enabled?"
37
- value : ${{ jobs.platform-list.outputs.windows }}
38
- enable-web :
39
- description : " Is Web Enabled?"
40
- value : ${{ jobs.platform-list.outputs.web }}
41
26
42
27
secrets :
43
28
FIREBASE_TOKEN :
44
29
required : true
45
30
46
31
jobs :
47
- platform-list :
48
- name : Platform List
49
- runs-on : ubuntu-latest
50
- outputs :
51
- android : ${{ steps.android.outputs.result }}
52
- ios : ${{ steps.ios.outputs.result }}
53
- linux : ${{ steps.linux.outputs.result }}
54
- macos : ${{ steps.macos.outputs.result }}
55
- windows : ${{ steps.windows.outputs.result }}
56
- web : ${{ steps.web.outputs.result }}
57
- steps :
58
- - name : Check Message for Any Keywords
59
- id : exists
60
- uses : actions/github-script@v6
61
- env :
62
- MESSAGE : ${{ github.event.head_commit.message || '' }}
63
- with :
64
- result-encoding : string
65
- script : |
66
- return process.env.MESSAGE.includes("platform:");
67
-
68
- - name : Android
69
- id : android
70
- uses : actions/github-script@v6
71
- env :
72
- EXISTS : ${{ steps.exists.outputs.result }}
73
- MESSAGE : ${{ github.event.head_commit.message || '' }}
74
- with :
75
- result-encoding : string
76
- script : |
77
- if (process.env.EXISTS === "false") return true;
78
- return process.env.MESSAGE.includes("platform:android");
79
-
80
- - name : iOS
81
- id : ios
82
- uses : actions/github-script@v6
83
- env :
84
- EXISTS : ${{ steps.exists.outputs.result }}
85
- MESSAGE : ${{ github.event.head_commit.message || '' }}
86
- with :
87
- result-encoding : string
88
- script : |
89
- if (process.env.EXISTS === "false") return true;
90
- return process.env.MESSAGE.includes("platform:ios");
91
-
92
- - name : Linux
93
- id : linux
94
- uses : actions/github-script@v6
95
- env :
96
- EXISTS : ${{ steps.exists.outputs.result }}
97
- MESSAGE : ${{ github.event.head_commit.message || '' }}
98
- with :
99
- result-encoding : string
100
- script : |
101
- if (process.env.EXISTS === "false") return true;
102
- return process.env.MESSAGE.includes("platform:linux");
103
-
104
- - name : macOS
105
- id : macos
106
- uses : actions/github-script@v6
107
- env :
108
- EXISTS : ${{ steps.exists.outputs.result }}
109
- MESSAGE : ${{ github.event.head_commit.message || '' }}
110
- with :
111
- result-encoding : string
112
- script : |
113
- if (process.env.EXISTS === "false") return true;
114
- return process.env.MESSAGE.includes("platform:macos");
115
-
116
- - name : Web
117
- id : web
118
- uses : actions/github-script@v6
119
- env :
120
- EXISTS : ${{ steps.exists.outputs.result }}
121
- MESSAGE : ${{ github.event.head_commit.message || '' }}
122
- with :
123
- result-encoding : string
124
- script : |
125
- if (process.env.EXISTS === "false") return true;
126
- return process.env.MESSAGE.includes("platform:web");
127
-
128
- - name : Windows
129
- id : windows
130
- uses : actions/github-script@v6
131
- env :
132
- EXISTS : ${{ steps.exists.outputs.result }}
133
- MESSAGE : ${{ github.event.head_commit.message || '' }}
134
- with :
135
- result-encoding : string
136
- script : |
137
- if (process.env.EXISTS === "false") return true;
138
- return process.env.MESSAGE.includes("platform:windows");
139
-
140
- - name : Log Platform List
141
- env :
142
- android : ${{ steps.android.outputs.result }}
143
- ios : ${{ steps.ios.outputs.result }}
144
- linux : ${{ steps.linux.outputs.result }}
145
- macos : ${{ steps.macos.outputs.result }}
146
- windows : ${{ steps.windows.outputs.result }}
147
- web : ${{ steps.web.outputs.result }}
148
- run : |
149
- echo "Android: $android"
150
- echo "iOS: $ios"
151
- echo "Linux: $linux"
152
- echo "macOS: $macos"
153
- echo "Web: $web"
154
- echo "Windows: $windows"
155
-
156
32
build-details :
157
33
name : Build Details
158
34
runs-on : ubuntu-latest
159
35
outputs :
160
36
build-changelog : ${{ steps.build-changelog.outputs.result }}
37
+ build-flavor : ${{ steps.build-flavor.outputs.result }}
161
38
build-number : ${{ steps.build-number.outputs.result }}
162
39
build-title : ${{ steps.build-title.outputs.output }}
163
40
build-version : ${{ steps.build-version.outputs.current-version }}
@@ -179,11 +56,29 @@ jobs:
179
56
MESSAGE=`git show -s --format=%s`
180
57
echo "::set-output name=commit-message::$MESSAGE"
181
58
59
+ - name : Build Flavor
60
+ id : build-flavor
61
+ uses : actions/github-script@v6
62
+ env :
63
+ FLAVOR : ${{ inputs.flavor }}
64
+ with :
65
+ result-encoding : string
66
+ script : |
67
+ const flavor = process.env.FLAVOR;
68
+ if (flavor) switch (flavor) {
69
+ case 'edge':
70
+ case 'beta':
71
+ case 'candidate':
72
+ case 'stable':
73
+ return flavor;
74
+ }
75
+ return 'edge';
76
+
182
77
- name : Build Changelog
183
78
id : build-changelog
184
79
uses : actions/github-script@v6
185
80
env :
186
- FLAVOR : ${{ inputs. flavor }}
81
+ FLAVOR : ${{ steps.build- flavor.outputs.result }}
187
82
MESSAGE : ${{ steps.commit-message.outputs.commit-message }}
188
83
with :
189
84
result-encoding : string
@@ -213,20 +108,22 @@ jobs:
213
108
id : build-title
214
109
run : |
215
110
HASH=`git rev-parse --short ${{ github.sha }}`
216
- TITLE="v${{ steps.build-version.outputs.current-version }}-${{ inputs. flavor }}-${{ steps.build-number.outputs.result }}-$HASH"
111
+ TITLE="v${{ steps.build-version.outputs.current-version }}-${{ steps.build- flavor.outputs.result }}-${{ steps.build-number.outputs.result }}-$HASH"
217
112
echo "::set-output name=output::$TITLE"
218
113
219
114
- name : Log Build Details
220
115
env :
221
- changelog : ${{ steps.build-changelog.outputs.result }}
222
- number : ${{ steps.build-number.outputs.result }}
223
- title : ${{ steps.build-title.outputs.output }}
224
- version : ${{ steps.build-version.outputs.current-version }}
116
+ CHANGELOG : ${{ steps.build-changelog.outputs.result }}
117
+ FLAVOR : ${{ steps.build-flavor.outputs.result }}
118
+ NUMBER : ${{ steps.build-number.outputs.result }}
119
+ TITLE : ${{ steps.build-title.outputs.output }}
120
+ VERSION : ${{ steps.build-version.outputs.current-version }}
225
121
run : |
226
- echo "Build Changelog: $changelog"
227
- echo "Build Number: $number"
228
- echo "Build Title: $title"
229
- echo "Build Version: $version"
122
+ echo "Build Changelog: $CHANGELOG"
123
+ echo "Build Flavor: $FLAVOR"
124
+ echo "Build Number: $NUMBER"
125
+ echo "Build Title: $TITLE"
126
+ echo "Build Version: $VERSION"
230
127
231
128
generate-files :
232
129
name : Generate Files
@@ -242,7 +139,7 @@ jobs:
242
139
243
140
- name : Generate Environment Configuration
244
141
run : |
245
- export FLAVOR=${{ inputs. flavor }}
142
+ export FLAVOR=${{ needs.build-details.outputs.build- flavor }}
246
143
export COMMIT=${{ github.sha }}
247
144
export BUILD=${{ needs.build-details.outputs.build-number }}
248
145
flutter packages pub run environment_config:generate
0 commit comments