Skip to content

Commit 8a3d365

Browse files
committed
version 0.3.1
1 parent f6f3044 commit 8a3d365

File tree

8 files changed

+126
-18
lines changed

8 files changed

+126
-18
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## [0.3.1] - 13 March 2022
2+
- Extension Version update to 0.3.1
3+
- *Build Task* version update to "0.3.1"
4+
- *Build Task* : Fixed `dartDefine` not working for IOS and AAB
5+
- *Build Task* : Added new `dartDefineMulti` for multiple "dart-define" arguments, (space separated) use as key1=val1 foo=bar
6+
- FAQ update
7+
- Readme update
8+
19
## [0.3.0] - 13 Nov 2021
210
- Minor version bump across to "0.3.0" for easy maintainance
311
- Migrate to Node10 as per Microsoft [deperication notice](https://aka.ms/migrateTaskNode10)

README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ Build the given mobile application project. You must call the `Flutter Install`
6464
* _(Optional)_. Set `entryPoint` to override the main entry point file of the application. Default is 'lib/main.dart'.
6565
* _(Optional)_. Set `verboseMode` if you wish to get detailed verbose log output for diagnoses purposes. Default is `false`.
6666
* _(Optional)_. Set `debugMode` if you wish to override the default release mode for the build. Default is `false`.
67-
* _(Optional)_. Set `dartDefine` compile-time variables. Example: "Some_Var=Some_val --dart-define=Some_Var2=Val"
67+
* _(Optional)_. Set `dartDefine` compile-time variables, use as : `foo=bar` (use 'dartDefineMulti' for multiple args)"
68+
* _(Optional)_. Set `dartDefineMulti` compile-time variables, use as (space separated) : `foo=bar key1=val1 key2=val2` (use for multiple --dart-define arguments)"
6869
* _(Optional)_. Set `extraArgs` if you want to pass more official/custom command arguments, `Space Separated`. Example: "--no-tree-shake-icons --publish-to-play"
6970
* __(Android)__._(Optional)_. Set `apkTargetPlatform` for the Android platform architecture target: `default` __(default set by Flutter sdk)__ `android-arm` , `android-arm64`, `android-x86`, `android-x64`, `custom`.
7071
* __(Android)__._(Optional)_. Set `customApkTargetPosition` for the `custom` target platform architecture, provide your own combination (comma separated) of valid values. _Example_ like `android-arm,android-arm64,android-x64`
@@ -158,8 +159,24 @@ Read this issue [#16](https://github.com/hey24sheep/azure-flutter-tasks/issues/1
158159
159160
Read this [wiki](https://github.com/hey24sheep/azure-flutter-tasks/wiki/Integeration-Test-Support) for steps, thanks to [@maksymgendin](https://github.com/maksymgendin) for the help.
160161

162+
> IOS build fail "Provisional Profile Errors" ?
163+
164+
Read this [#35](https://github.com/hey24sheep/azure-flutter-tasks/issues/35#issuecomment-1063794699) for help
165+
166+
161167
<br/>
162168

169+
## Improve
170+
171+
Help me by reporting bugs, creating PRs, **submit new ideas** for features or anything else that you want to share.
172+
173+
- Just [write an issue](https://github.com/hey24sheep/azure-flutter-tasks/issues) on GitHub. ✏️
174+
175+
## More
176+
177+
Check out my other useful **Flutter** packages on [pub.dev](https://pub.dev/publishers/hey24sheep.com/packages)
178+
or more **DevOps** extensions on [marketplace](https://marketplace.visualstudio.com/publishers/Hey24sheep)
179+
163180
## Source Code
164181

165182
Source code can be found on [Github](https://github.com/hey24sheep/azure-flutter-tasks).

tasks/build/index.js

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ function main() {
4343
let buildFlavour = task.getInput('buildFlavour', false);
4444
let entryPoint = task.getInput('entryPoint', false);
4545
let dartDefine = task.getInput('dartDefine', false);
46+
let dartDefineMulti = task.getInput('dartDefineMulti', false);
4647
let splitPerAbi = task.getBoolInput('splitPerAbi', false);
4748
let isVerbose = task.getBoolInput('verboseMode', false);
4849
let extraArgs = task.getInput('extraArgs', false);
@@ -55,7 +56,7 @@ function main() {
5556
let targetPlatform = task.getInput('iosTargetPlatform', false);
5657
let codesign = task.getBoolInput('iosCodesign', false);
5758
let exportOptionsPlist = task.getInput('exportOptionsPlist', false);
58-
yield buildIpa(flutterPath, targetPlatform == "simulator", codesign, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, isVerbose, extraArgs, isIPA, exportOptionsPlist);
59+
yield buildIpa(flutterPath, targetPlatform == "simulator", codesign, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, dartDefineMulti, isVerbose, extraArgs, isIPA, exportOptionsPlist);
5960
}
6061
if (target === "all"
6162
|| target === "mobile"
@@ -67,12 +68,12 @@ function main() {
6768
else if (targetPlatform === 'default') {
6869
targetPlatform = null; // let flutter handle defaults
6970
}
70-
yield buildApk(flutterPath, targetPlatform, buildName, buildNumber, debugMode, buildFlavour, entryPoint, splitPerAbi, dartDefine, isVerbose, extraArgs);
71+
yield buildApk(flutterPath, targetPlatform, buildName, buildNumber, debugMode, buildFlavour, entryPoint, splitPerAbi, dartDefine, dartDefineMulti, isVerbose, extraArgs);
7172
}
7273
if (target === "all"
7374
|| target === "mobile"
7475
|| target === "aab") {
75-
yield buildAab(flutterPath, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, isVerbose, extraArgs);
76+
yield buildAab(flutterPath, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, dartDefineMulti, isVerbose, extraArgs);
7677
}
7778
if (target === "all" || target === "web") {
7879
yield buildWeb(flutterPath, isVerbose, extraArgs);
@@ -95,7 +96,7 @@ function main() {
9596
task.setResult(task.TaskResult.Succeeded, "Application built");
9697
});
9798
}
98-
function buildApk(flutter, targetPlatform, buildName, buildNumber, debugMode, buildFlavour, entryPoint, splitPerAbi, dartDefine, isVerbose, extraArgs) {
99+
function buildApk(flutter, targetPlatform, buildName, buildNumber, debugMode, buildFlavour, entryPoint, splitPerAbi, dartDefine, dartDefineMulti, isVerbose, extraArgs) {
99100
return __awaiter(this, void 0, void 0, function* () {
100101
var args = [
101102
"build",
@@ -130,6 +131,14 @@ function buildApk(flutter, targetPlatform, buildName, buildNumber, debugMode, bu
130131
args.push(...splitted.splice(1));
131132
}
132133
}
134+
if (dartDefineMulti) {
135+
// should be like key1=val1 key2=val2
136+
var splitted = dartDefineMulti.split(" ");
137+
var dartDefineArgs = splitted.map((i) => {
138+
// single split val should be like key1=val1
139+
args.push('--dart-define=' + i);
140+
});
141+
}
133142
if (isVerbose) {
134143
args.push("--verbose");
135144
}
@@ -143,7 +152,7 @@ function buildApk(flutter, targetPlatform, buildName, buildNumber, debugMode, bu
143152
}
144153
});
145154
}
146-
function buildAab(flutter, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, isVerbose, extraArgs) {
155+
function buildAab(flutter, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, dartDefineMulti, isVerbose, extraArgs) {
147156
return __awaiter(this, void 0, void 0, function* () {
148157
var args = [
149158
"build",
@@ -165,7 +174,19 @@ function buildAab(flutter, buildName, buildNumber, debugMode, buildFlavour, entr
165174
args.push("--target=" + entryPoint);
166175
}
167176
if (dartDefine) {
168-
args.push("--dart-define=" + dartDefine);
177+
var splitted = dartDefine.split(" ");
178+
if (splitted && splitted.length > 0) {
179+
args.push("--dart-define=" + splitted[0]);
180+
args.push(...splitted.splice(1));
181+
}
182+
}
183+
if (dartDefineMulti) {
184+
// should be like key1=val1 key2=val2
185+
var splitted = dartDefineMulti.split(" ");
186+
var dartDefineArgs = splitted.map((i) => {
187+
// single split val should be like key1=val1
188+
args.push('--dart-define=' + i);
189+
});
169190
}
170191
if (isVerbose) {
171192
args.push("--verbose");
@@ -180,7 +201,7 @@ function buildAab(flutter, buildName, buildNumber, debugMode, buildFlavour, entr
180201
}
181202
});
182203
}
183-
function buildIpa(flutter, simulator, codesign, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, isVerbose, extraArgs, isIPA, exportOptionsPlist) {
204+
function buildIpa(flutter, simulator, codesign, buildName, buildNumber, debugMode, buildFlavour, entryPoint, dartDefine, dartDefineMulti, isVerbose, extraArgs, isIPA, exportOptionsPlist) {
184205
return __awaiter(this, void 0, void 0, function* () {
185206
var args = ["build"];
186207
if (isIPA) {
@@ -221,7 +242,19 @@ function buildIpa(flutter, simulator, codesign, buildName, buildNumber, debugMod
221242
}
222243
}
223244
if (dartDefine) {
224-
args.push("--dart-define=" + dartDefine);
245+
var splitted = dartDefine.split(" ");
246+
if (splitted && splitted.length > 0) {
247+
args.push("--dart-define=" + splitted[0]);
248+
args.push(...splitted.splice(1));
249+
}
250+
}
251+
if (dartDefineMulti) {
252+
// should be like key1=val1 key2=val2
253+
var splitted = dartDefineMulti.split(" ");
254+
var dartDefineArgs = splitted.map((i) => {
255+
// single split val should be like key1=val1
256+
args.push('--dart-define=' + i);
257+
});
225258
}
226259
if (isVerbose) {
227260
args.push("--verbose");

tasks/build/index.ts

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ async function main(): Promise<void> {
3636
let buildFlavour = task.getInput('buildFlavour', false);
3737
let entryPoint = task.getInput('entryPoint', false);
3838
let dartDefine = task.getInput('dartDefine', false);
39+
let dartDefineMulti = task.getInput('dartDefineMulti', false);
3940
let splitPerAbi = task.getBoolInput('splitPerAbi', false);
4041
let isVerbose = task.getBoolInput('verboseMode', false);
4142
let extraArgs = task.getInput('extraArgs', false);
@@ -60,6 +61,7 @@ async function main(): Promise<void> {
6061
buildFlavour,
6162
entryPoint,
6263
dartDefine,
64+
dartDefineMulti,
6365
isVerbose,
6466
extraArgs,
6567
isIPA,
@@ -85,6 +87,7 @@ async function main(): Promise<void> {
8587
entryPoint,
8688
splitPerAbi,
8789
dartDefine,
90+
dartDefineMulti,
8891
isVerbose,
8992
extraArgs);
9093
}
@@ -100,6 +103,7 @@ async function main(): Promise<void> {
100103
buildFlavour,
101104
entryPoint,
102105
dartDefine,
106+
dartDefineMulti,
103107
isVerbose,
104108
extraArgs);
105109
}
@@ -139,6 +143,7 @@ async function buildApk(
139143
entryPoint?: string,
140144
splitPerAbi?: boolean,
141145
dartDefine?: string,
146+
dartDefineMulti?: string,
142147
isVerbose?: boolean,
143148
extraArgs?: string) {
144149

@@ -184,6 +189,15 @@ async function buildApk(
184189
}
185190
}
186191

192+
if (dartDefineMulti) {
193+
// should be like key1=val1 key2=val2
194+
var splitted = dartDefineMulti.split(" ");
195+
var dartDefineArgs = splitted.map((i)=>{
196+
// single split val should be like key1=val1
197+
args.push('--dart-define='+i);
198+
});
199+
}
200+
187201
if (isVerbose) {
188202
args.push("--verbose");
189203
}
@@ -208,6 +222,7 @@ async function buildAab(
208222
buildFlavour?: string,
209223
entryPoint?: string,
210224
dartDefine?: string,
225+
dartDefineMulti?: string,
211226
isVerbose?: boolean,
212227
extraArgs?: string) {
213228

@@ -237,7 +252,20 @@ async function buildAab(
237252
}
238253

239254
if (dartDefine) {
240-
args.push("--dart-define=" + dartDefine);
255+
var splitted = dartDefine.split(" ");
256+
if (splitted && splitted.length > 0) {
257+
args.push("--dart-define=" + splitted[0]);
258+
args.push(...splitted.splice(1));
259+
}
260+
}
261+
262+
if (dartDefineMulti) {
263+
// should be like key1=val1 key2=val2
264+
var splitted = dartDefineMulti.split(" ");
265+
var dartDefineArgs = splitted.map((i)=>{
266+
// single split val should be like key1=val1
267+
args.push('--dart-define='+i);
268+
});
241269
}
242270

243271
if (isVerbose) {
@@ -266,6 +294,7 @@ async function buildIpa(
266294
buildFlavour?: string,
267295
entryPoint?: string,
268296
dartDefine?: string,
297+
dartDefineMulti?: string,
269298
isVerbose?: boolean,
270299
extraArgs?: string,
271300
isIPA?: boolean,
@@ -318,7 +347,20 @@ async function buildIpa(
318347
}
319348

320349
if (dartDefine) {
321-
args.push("--dart-define=" + dartDefine);
350+
var splitted = dartDefine.split(" ");
351+
if (splitted && splitted.length > 0) {
352+
args.push("--dart-define=" + splitted[0]);
353+
args.push(...splitted.splice(1));
354+
}
355+
}
356+
357+
if (dartDefineMulti) {
358+
// should be like key1=val1 key2=val2
359+
var splitted = dartDefineMulti.split(" ");
360+
var dartDefineArgs = splitted.map((i)=>{
361+
// single split val should be like key1=val1
362+
args.push('--dart-define='+i);
363+
});
322364
}
323365

324366
if (isVerbose) {

tasks/build/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tasks/build/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "flutterbuild",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"description": "Flutter Build Task",
55
"main": "index.js",
66
"scripts": {

tasks/build/task.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"version": {
1313
"Major": 0,
1414
"Minor": 3,
15-
"Patch": 0
15+
"Patch": 1
1616
},
1717
"groups": [],
1818
"instanceNameFormat": "Flutter Build $(target)",
@@ -170,10 +170,18 @@
170170
{
171171
"name": "dartDefine",
172172
"type": "string",
173-
"label": "Parameter value for --dart-define",
173+
"label": "key=val single pair for single --dart-define arg",
174174
"defaultValue": "",
175175
"required": false,
176-
"helpMarkDown": "Parameter passed to --dart-define, example : 'Some_Var=Some_val --dart-define=Some_Var2=Val'"
176+
"helpMarkDown": "Parameter passed to --dart-define, use as : 'foo=bar' (use 'dartDefineMulti' for multiple args)"
177+
},
178+
{
179+
"name": "dartDefineMulti",
180+
"type": "string",
181+
"label": "key=value pairs (space separated) for multiple --dart-define args",
182+
"defaultValue": "",
183+
"required": false,
184+
"helpMarkDown": "Parameters passed to multiple --dart-define, use as : 'foo=bar key1=val1 key2=val2'"
177185
},
178186
{
179187
"name": "extraArgs",

vss-extension.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifestVersion": 1,
33
"id": "flutter",
4-
"version": "0.3.0",
4+
"version": "0.3.1",
55
"name": "Flutter Tasks",
66
"description": "Flutter extension for Azure DevOps. Install, build, analyze, command and env tasks for easier Flutter DevOps.",
77
"publisher": "hey24sheep",

0 commit comments

Comments
 (0)