Skip to content
This repository has been archived by the owner on Jul 10, 2021. It is now read-only.

hey24sheep/vsts-flutter-tasks

 
 

Repository files navigation

Flutter for Azure DevOps

NOTICE

This fork is now a new project Azure Flutter Tasks. As the original branch of this fork is not maintained and long due for updates.

Users of this extension will have no change effect.

Contributors can create new issues, PRs on the new repo. I will no longer maintain this fork, instead all updates will be made to the new repo.


Flutter build task for Azure DevOps.

All credit goes to the original author for his awesome work. This extension is a custom/updated/maintained fork of Alois Deniel's extension Github

Buy Me A Coffee

Installation

Installation can be done using Visual Studio MarketPlace.

Source Code

Source code can be found on Github.

Original repo : Github.

Usage

Add the tasks to your build definition.

Install

Installs the Flutter SDK onto the running agent if not already installed. Then uses it for following tasks.

  • Select the Release Url Mode: auto (default), custom. If custom is specified, a Custom (Flutter SDK Install Url) must be set.
  • Select the channel: stable (default), beta, or dev.
  • Select the version of the SDK to install: latest (default), custom. If custom is specified, a customVersion must be set.
  • (Optional). Set the customVersion (in a <M>.<m>.<p> semver format) if needed.
  • (Optional). Set the Custom (Flutter SDK Install Url) to release install url like https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_2.2.1-stable.zip or any other available on (https://flutter.dev/docs/development/tools/sdk/releases?tab=windows).

Build

Build the given mobile application project. You must call the Flutter Install task or use the optional flutterDirectory task input that points to your flutter/bin folder before execution. All application bundles are created in the build/outputs folder of your project.

  • Select the projectDirectory that contains the pubspec.yaml file.
  • Select the target platform. Options are: apk (default), aab, ios, ipa, web, all mobile (all mobile platforms only), desktop (windows), desktop (macos), desktop (linux), all desktop (all desktop platforms only) , all (all platforms).
  • (Optional). Set flutterDirectory to set path to the Flutter SDK if you were not using Flutter Install task before this one
  • (Optional). Set buildName (like 1.2.3) that will override the manifest's one.
  • (Optional). Set buildNumber (like 12) that will override the manifest's one.
  • (Optional). Set buildFlavour (like development) to specify a build flavour. Must match Android Gradle flavor definition or XCode scheme.
  • (Optional). Set entryPoint to override the main entry point file of the application. Default is 'lib/main.dart'.
  • (Optional). Set verboseMode if you wish to get detailed verbose log output for diagnoses purposes. Default is false.
  • (Optional). Set debugMode if you wish to override the default release mode for the build. Default is false.
  • (Optional). Set dartDefine compile-time variables. Example: "Some_Var=Some_val --dart-define=Some_Var2=Val"
  • (Optional). Set extraArgs if you want to pass more official/custom command arguments. Example: "--no-tree-shake-icons --publish-to-play"
  • (Android).(Optional). Set apkTargetPlatform for the Android platform architecture target: android-arm (default), android-arm64.
  • (Android).(Optional). Set the build mode splitPerAbi to compile the code into an APK per target ABI. Otherwise the build will result in a single APK.
  • (iOS).(Optional). Set iosTargetPlatform for the iOS target: device (default), simulator.
  • (iOS).(Optional). Set iosCodesign to configure whenever the bundle odesign the application bundle (only available on device builds, and activated by default). Warning: you must install a valid certificate before build with the Install an Apple Certificatetask

Test

Launch tests and publish a report as build test results.

  • Select the projectDirectory that contains to pubspec.yaml file.
  • (Optional). Set testName as a regular expression matching substrings of the names of tests to run.
  • (Optional). Set testPlainName as a plain-text substring of the names of tests to run.
  • (Optional). Set updateGoldens: whether matchesGoldenFile() calls within your test methods should update the golden files rather than test for an existing match.
  • (Optional). Set generateCodeCoverageReport to generate code coverage report based on tests in the project. The report file is located in the specified projectDirectory in coverage/lcov.info.
  • (Optional). Set concurrency to specify the number of concurrent test processes to run. Default is 6.

Analyze

Launch analyze on flutter directory.

  • Select the projectDirectory that contains the pubspec.yaml file.
  • (Optional). Set pubGet if you wish to run pub get command before analyze. Default is true.
  • (Optional). Set extraArgs if you want to pass more official/custom command arguments. Example: "--fatal-infos --fatal-warnings"

Command

Launch a Flutter command with custom arguments.

  • Set the arguments to your custom valid flutter command.
  • Select the projectDirectory that contains the pubspec.yaml file.
  • (Optional). Set flutterDirectory to set path to the Flutter SDK if you were not using Flutter Install task before this one

FAQ

Flutter command isn't recognized ?

Make sure that you have a Flutter Install at the beginning of your definition.

Can I run a custom Flutter command ?

Yes, right after the Flutter Install task, a FlutterToolPath environment variable points to the bin of the Flutter SDK directory. You just have to use $(FlutterToolPath) in your following tasks. Example: "$(FlutterToolPath)/flutter packages get"

Can I run Dart program ?

Yes, right after the Flutter Install task, a DartToolPath environment variable points to the bin of the Dart SDK directory. You just have to use $(DartToolPath) in your following tasks. Example: "$(DartToolPath)/dart program.dart arg1 arg2"

Can I access Flutter's pub-cache ?

Yes, right after the Flutter Install task, a FlutterPubCachePath environment variable points to the pub-cache directory that Flutter installs all depdencies. You just have to use $(FlutterPubCachePath) in your following tasks. Example: "$(FlutterPubCachePath)/pubver set $(Version)"

License

MIT

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 48.5%
  • TypeScript 40.0%
  • Dart 8.4%
  • Shell 1.4%
  • Objective-C 1.1%
  • Java 0.6%