fastlane-plugin-android_sdk_update 0.1.1 → 1.0.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
  SHA1:
3
- metadata.gz: a3cef8799bcfcf245fd0413d4ec82402f20c890f
4
- data.tar.gz: 8508aa02a750956763c24ed861b79b8648e3d939
3
+ metadata.gz: 2515fd10afe8cb81dad11f4a5eb2ab7e328ebafd
4
+ data.tar.gz: 1052ccbef84eaf59c3f341b26c8ba0b225e2fa0e
5
5
  SHA512:
6
- metadata.gz: dbf008f60de30e40903add848d70a8e5d0ee6b380054e2683a49d45b75fd5d84fe05bd7cf173b053b6bdc3f50a57989aa5d49c91d1acd6ed4c8b49980e6528be
7
- data.tar.gz: cc075a6165536561077242c052eeb7b69c1706d3ba39bc358b5784bf963f40227dee958a8540917f7758badb19c2cbefa36e2668817030b5b286534cec7e7b85
6
+ metadata.gz: 56df0346a2546448352531ce7767d4bf5c4ba7501e4c493f3b063e567c3f49dfbfa906c6011c84351cd3458429117a86c391b1e7215e2d78c4285e95206b97bd
7
+ data.tar.gz: 8a65c756d0a22c467679bbb43a911809e84a1a2a9e5f2d8e51f4611acb3914a5cc10c68017f0c151220cfbbc8b749770c4d988fe8efa15d5cc27bab236535390
data/README.md CHANGED
@@ -26,8 +26,8 @@ android_sdk_update(
26
26
  )
27
27
 
28
28
  android_sdk_update(
29
- compile_sdk_version: "25",
30
- build_tools_version: "25.0.2",
29
+ compile_sdk_version: "27",
30
+ build_tools_version: "27.0.2",
31
31
  additional_packages: ["extras;google;m2repository", "extras;android;m2repository"]
32
32
  )
33
33
  ```
@@ -41,8 +41,8 @@ First we set these versions in the property file
41
41
  **gradle.properties**
42
42
 
43
43
  ```java
44
- compile_sdk_version=25
45
- build_tools_version=25.0.2
44
+ compile_sdk_version=27
45
+ build_tools_version=27.0.2
46
46
  ```
47
47
 
48
48
  Now we can reference them in our gradle project
@@ -1,57 +1,90 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- ANDROID_SDK_DIR = :ANDROID_SDK_DIR
5
- end
6
-
7
3
  class AndroidSdkUpdateAction < Action
8
4
  def self.run(params)
9
5
  # Install Android-SDK via brew
10
- require 'fastlane/plugin/brew'
11
- if FastlaneCore::Helper.mac?
12
- Actions::BrewAction.run(command: "cask ls --versions android-sdk || brew cask install android-sdk")
13
- elsif FastlaneCore::Helper.linux?
14
- Actions::BrewAction.run(command: "ls --versions android-sdk || brew install android-sdk")
15
- else
16
- UI.user_error! 'Your OS is currently not supported.'
17
- end
6
+ sdk_path = determine_sdk(params)
7
+ sdk_manager = File.expand_path("tools/bin/sdkmanager", sdk_path)
18
8
 
9
+ # Define required packages
19
10
  require 'java-properties'
20
11
  properties = File.exist?("#{Dir.pwd}/gradle.properties") ? JavaProperties.load("#{Dir.pwd}/gradle.properties") : {}
21
12
  tools_version = params[:build_tools_version] || properties[:build_tools_version] || UI.user_error!('No build tools version defined.')
22
13
  sdk_version = params[:compile_sdk_version] || properties[:compile_sdk_version] || UI.user_error!('No compile sdk version defined.')
23
14
 
24
- # Determine SDK dir and the sdkmanager
25
- sdk_path = File.realpath("../..", FastlaneCore::CommandExecutor.which("android"))
26
- sdk_manager = File.expand_path("tools/bin/sdkmanager", sdk_path)
27
- Actions.lane_context[SharedValues::ANDROID_SDK_DIR] = sdk_path
28
-
29
15
  packages = params[:additional_packages]
30
16
  packages << "platforms;android-#{sdk_version}"
31
17
  packages << "build-tools;#{tools_version}"
32
18
  packages << "tools"
33
19
  packages << "platform-tools"
34
20
 
35
- # Install Packagaes
21
+ # Install Packages
36
22
  UI.header("Install Android-SDK packages")
37
23
 
38
- unless File.exist?(sdk_manager)
39
- # In case an old SDK is installed without the sdkmanager
40
- UI.important("Installed Android-SDK tools are outdated.")
41
- Actions.sh "echo y | android update sdk --no-ui --all --filter tools"
24
+ if params[:update_installed_packages]
25
+ UI.message("Updating all installed packages")
26
+ # Ensure all installed packages are updated
27
+ FastlaneCore::CommandExecutor.execute(command: "yes | #{sdk_manager} --update",
28
+ print_all: true,
29
+ print_command: false)
42
30
  end
43
31
 
32
+ UI.message("Installing packages...")
44
33
  packages.each { |package| UI.message("• #{package}") }
45
- FastlaneCore::CommandExecutor.execute(command: "echo y | #{sdk_manager} '#{packages.join("' '")}'",
34
+ FastlaneCore::CommandExecutor.execute(command: "yes | #{sdk_manager} '#{packages.join("' '")}'",
46
35
  print_all: true,
47
36
  print_command: false)
48
37
 
38
+ # Accept licenses for all available packages
39
+ UI.important("Accepting licenses on your behalf!")
40
+ FastlaneCore::CommandExecutor.execute(command: "yes | #{sdk_manager} --licenses",
41
+ print_all: true,
42
+ print_command: false)
43
+
49
44
  if params[:override_local_properties]
50
45
  UI.message("Override local.properties")
51
46
  JavaProperties.write({ :"sdk.dir" => sdk_path }, "#{Dir.pwd}/local.properties")
52
47
  end
53
48
  end
54
49
 
50
+ def self.determine_sdk(params)
51
+ # on mac
52
+ if FastlaneCore::Helper.mac?
53
+ require 'fastlane/plugin/brew'
54
+ Actions::BrewAction.run(command: "cask ls --versions android-sdk || brew cask install android-sdk")
55
+ sdk_path = File.realpath("../../..", FastlaneCore::CommandExecutor.which("sdkmanager"))
56
+
57
+ # on linux
58
+ elsif FastlaneCore::Helper.linux?
59
+ sdk_path = File.expand_path(params[:linux_sdk_dir])
60
+ if File.exist?("#{sdk_path}/tools/bin/sdkmanager")
61
+ UI.message("Using existing android-sdk at #{sdk_path}")
62
+ else
63
+ UI.message("Downloading android-sdk to #{sdk_path}")
64
+ download_and_extract_sdk(params[:linux_sdk_download_url], sdk_path)
65
+ end
66
+
67
+ else
68
+ UI.user_error! 'Your OS is currently not supported.'
69
+ end
70
+
71
+ ENV['ANDROID_SDK_ROOT'] = sdk_path
72
+ sdk_path
73
+ end
74
+
75
+ def self.download_and_extract_sdk(download_url, sdk_path)
76
+ FastlaneCore::CommandExecutor.execute(command: "wget -O /tmp/android-sdk-tools.zip #{download_url}",
77
+ print_all: true,
78
+ print_command: true)
79
+ FastlaneCore::CommandExecutor.execute(command: "unzip -qo /tmp/android-sdk-tools.zip -d #{sdk_path}",
80
+ print_all: true,
81
+ print_command: true)
82
+ ensure
83
+ FastlaneCore::CommandExecutor.execute(command: "rm -f /tmp/android-sdk-tools.zip",
84
+ print_all: true,
85
+ print_command: true)
86
+ end
87
+
55
88
  #####################################################
56
89
  # @!group Documentation
57
90
  #####################################################
@@ -102,13 +135,22 @@ module Fastlane
102
135
  env_name: "FL_ANDROID_SDK_OVERRIDE_LOCAL_PROPERTIES",
103
136
  description: "Set the sdk-dir in 'local.properties' so Gradle finds the Android home",
104
137
  is_string: false,
105
- default_value: true)
106
- ]
107
- end
108
-
109
- def self.output
110
- [
111
- ['ANDROID_SDK_DIR', 'Path to the android sdk']
138
+ default_value: true),
139
+ FastlaneCore::ConfigItem.new(key: :update_installed_packages,
140
+ env_name: "FL_ANDROID_SDK_UPDATE_INSTALLED_PACKAGES",
141
+ description: "Update all installed packages to the latest versions",
142
+ is_string: false,
143
+ default_value: false),
144
+ FastlaneCore::ConfigItem.new(key: :linux_sdk_dir,
145
+ env_name: "FL_ANDROID_LINUX_SDK_DIR",
146
+ description: "Directory for Android SDK on Linux",
147
+ optional: true,
148
+ default_value: ENV['ANDROID_HOME'] || ENV['ANDROID_SDK'] || ENV['ANDROID_SDK_ROOT'] || "~/.android-sdk"),
149
+ FastlaneCore::ConfigItem.new(key: :linux_sdk_download_url,
150
+ env_name: "FL_ANDROID_LINUX_SDK_DOWNLOAD_URL",
151
+ description: "Download URL for Android SDK on Linux",
152
+ optional: true,
153
+ default_value: "https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip")
112
154
  ]
113
155
  end
114
156
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AndroidSdkUpdate
3
- VERSION = "0.1.1"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-android_sdk_update
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philipp Burgk
@@ -9,38 +9,38 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-07-10 00:00:00.000000000 Z
12
+ date: 2018-12-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: java-properties
15
+ name: fastlane-plugin-brew
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 0.2.0
20
+ version: 0.1.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 0.2.0
27
+ version: 0.1.1
28
28
  - !ruby/object:Gem::Dependency
29
- name: fastlane-plugin-brew
29
+ name: java-properties
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 0.1.1
34
+ version: 0.2.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 0.1.1
41
+ version: 0.2.0
42
42
  - !ruby/object:Gem::Dependency
43
- name: pry
43
+ name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
@@ -54,21 +54,21 @@ dependencies:
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
- name: bundler
57
+ name: fastlane
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: '0'
62
+ version: 2.91.0
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: 2.91.0
70
70
  - !ruby/object:Gem::Dependency
71
- name: rspec
71
+ name: pry
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -96,7 +96,7 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: rubocop
99
+ name: rspec
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
@@ -110,19 +110,19 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: fastlane
113
+ name: rubocop
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
117
117
  - !ruby/object:Gem::Version
118
- version: 2.27.0
118
+ version: '0'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: 2.27.0
125
+ version: '0'
126
126
  description:
127
127
  email:
128
128
  - philipp.burgk@novatec-gmbh.de