fastlane-plugin-flutter 0.4.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1103e664db0814cd15485b5749b0e8a99acfd3bad2ca56d5657b4faac8ed167b
4
- data.tar.gz: 3f0c48ae721b5a8224a23cedfd89f2c604d16de58c0400d30b18a89751828944
3
+ metadata.gz: 850e54c27628397e666fc6891f194099be8c0ab99ae465c58b33f2735ece8b53
4
+ data.tar.gz: 99e0b65d86165f064d9db289511629c5afd15854f3b12c7b7cae3992d3f51060
5
5
  SHA512:
6
- metadata.gz: 206bcbb624408a2cc7dc21a940e3374caaa8f74d1e20dff50773a8b4dcc200431829a6ec408f56b611fecc70ad293b7546cde4a6456ca0f07301c002d2ed440f
7
- data.tar.gz: 100a47609d3a003219771d792576787e1707d6894fc96685ad6a39ad5afbcd2f61e2e6bad7b246cf8bd548f27d0176bb6c6f40a5866b4f3d750e412dcc98b07a
6
+ metadata.gz: 84dd37b21ceba829ee3500fc2696e6d63da9036a23efa9bc84bc919032b05db10b64bf0f8c6caeda65ab70de2ecbc7589a7eb5014877ac78ad0914f4888525f6
7
+ data.tar.gz: ac0c75e59ca975897caee138e093a98a5ea2da7208548cc8fd957945a960a1f6b9ab86afcf8c02b1612d0a32f414f6a56ee8b39cd32a69d46d857348cda422e4
@@ -34,7 +34,7 @@ module Fastlane
34
34
  else
35
35
  Helper::FlutterHelper.git(
36
36
  'clone', # no --depth limit to keep Flutter tag-based versioning.
37
- "--branch=#{flutter_channel || 'beta'}",
37
+ "--branch=#{flutter_channel || 'stable'}",
38
38
  '--quiet',
39
39
  '--',
40
40
  FLUTTER_REMOTE_REPOSITORY,
@@ -52,16 +52,7 @@ module Fastlane
52
52
 
53
53
  Helper::FlutterHelper.flutter('build', *build_args) do |status, res|
54
54
  if status.success?
55
- artifacts = res.scan(/Built (.*?)(:? \([^)]*\))?\.$/).
56
- map { |path| File.absolute_path(path[0]) }
57
- if artifacts.size == 1
58
- lane_context[SharedValues::FLUTTER_OUTPUT] = artifacts.first
59
- elsif artifacts.size > 1
60
- # Could be the result of "flutter build apk --split-per-abi".
61
- lane_context[SharedValues::FLUTTER_OUTPUT] = artifacts
62
- else
63
- UI.important('Cannot parse built file path from "flutter build"')
64
- end
55
+ process_build_output(res, build_args)
65
56
  # gym (aka build_ios_app) action call may follow build; let's help
66
57
  # it identify the project, since Flutter project structure is
67
58
  # usually standard.
@@ -125,6 +116,21 @@ form instead.
125
116
  end
126
117
  end
127
118
 
119
+ def self.process_build_output(output, build_args)
120
+ artifacts = output.scan(/Built (.*?)(:? \([^)]*\))?\.$/).
121
+ map { |path| File.absolute_path(path[0]) }
122
+ if artifacts.size == 1
123
+ lane_context[SharedValues::FLUTTER_OUTPUT] = artifacts.first
124
+ elsif artifacts.size > 1
125
+ # Could be the result of "flutter build apk --split-per-abi".
126
+ lane_context[SharedValues::FLUTTER_OUTPUT] = artifacts
127
+ elsif build_args.include?('--config-only')
128
+ UI.message('Config-only "build" detected, no output file name')
129
+ else
130
+ UI.important('Cannot parse built file path from "flutter build"')
131
+ end
132
+ end
133
+
128
134
  def self.description
129
135
  'Run "flutter build" to build a Flutter application'
130
136
  end
@@ -13,32 +13,47 @@ module Fastlane
13
13
  end
14
14
 
15
15
  def self.flutter_sdk_root
16
+ # Support flutterw and compatible projects.
17
+ # Prefixing directory name with "." has a nice effect that Flutter tools
18
+ # such as "format" and "lint" will not recurse into this subdirectory
19
+ # while analyzing the project itself. This works immensely better than
20
+ # e.g. vendor/flutter.
21
+ pinned_flutter_path = File.join(Dir.pwd, '.flutter')
22
+
16
23
  @flutter_sdk_root ||= File.expand_path(
17
- if ENV.include?('FLUTTER_SDK_ROOT')
18
- UI.deprecated(
19
- 'FLUTTER_SDK_ROOT environment variable is deprecated. ' \
20
- 'To point to a Flutter installation directory, use ' \
21
- 'FLUTTER_ROOT instead.'
22
- )
23
- ENV['FLUTTER_SDK_ROOT']
24
+ if flutter_installed?(pinned_flutter_path)
25
+ UI.message("Determined Flutter location as #{pinned_flutter_path}" \
26
+ " because 'flutter' executable exists there.")
27
+ pinned_flutter_path
24
28
  elsif ENV.include?('FLUTTER_ROOT')
25
29
  # FLUTTER_ROOT is a standard environment variable from Flutter.
30
+ UI.message("Determined Flutter location as #{ENV['FLUTTER_ROOT']}" \
31
+ " because environment variable FLUTTER_ROOT points there" \
32
+ " (current directory is #{Dir.pwd}).")
26
33
  ENV['FLUTTER_ROOT']
27
34
  elsif flutter_binary = FastlaneCore::CommandExecutor.which('flutter')
28
- File.dirname(File.dirname(flutter_binary))
35
+ location = File.dirname(File.dirname(flutter_binary))
36
+ UI.message("Determined Flutter location as #{location} because"\
37
+ " 'flutter' executable in PATH is located there" \
38
+ " (current directory is #{Dir.pwd}).")
39
+ location
29
40
  else
30
- File.join(Dir.pwd, 'vendor', 'flutter')
41
+ # Where we'd prefer to install flutter.
42
+ UI.message("Determined desired Flutter location as" \
43
+ " #{pinned_flutter_path} because that's where this fastlane" \
44
+ " plugin would install Flutter by default.")
45
+ pinned_flutter_path
31
46
  end
32
47
  )
33
48
  end
34
49
 
35
- def self.flutter_installed?
50
+ def self.flutter_installed?(custom_flutter_root = nil)
36
51
  # Can't use File.executable? because on Windows it has to be .exe.
37
- File.exist?(flutter_binary)
52
+ File.exist?(flutter_binary(custom_flutter_root))
38
53
  end
39
54
 
40
- def self.flutter_binary
41
- File.join(flutter_sdk_root, 'bin', 'flutter')
55
+ def self.flutter_binary(custom_flutter_root = nil)
56
+ File.join(custom_flutter_root || flutter_sdk_root, 'bin', 'flutter')
42
57
  end
43
58
 
44
59
  def self.dev_dependency?(package)
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Flutter
3
- VERSION = '0.4.2'
3
+ VERSION = '0.7.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-flutter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Sheremet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-15 00:00:00.000000000 Z
11
+ date: 2021-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -188,7 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  requirements: []
191
- rubygems_version: 3.0.6
191
+ rubyforge_project:
192
+ rubygems_version: 2.7.6.2
192
193
  signing_key:
193
194
  specification_version: 4
194
195
  summary: Flutter actions plugin for Fastlane