fastlane-plugin-android_sdk_update 0.1.0 → 1.1.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
- SHA1:
3
- metadata.gz: a19d6630882705ee00b402ab1b6ab2affa3f9195
4
- data.tar.gz: 81e849a64bbd4cd6332a8f1b09c0aa89b5a63379
2
+ SHA256:
3
+ metadata.gz: c1145152294d60ca477fb6802c6c14620a834cd090af6b370ad7c1f89822fcdc
4
+ data.tar.gz: dcccdc9fbf9eb5b798582263fc9021294f1f6bacca9eb282a3bb899257cb9b86
5
5
  SHA512:
6
- metadata.gz: 55f3614bae1815ba4aa45ff1cf1aa4a0d9d492f3d263cda04d69320a5d0e842d99cdf5a083777094f4a61e588e9e61515e3f305ff9fe67dd2680466ac1f1d895
7
- data.tar.gz: bd2ada92b79919b102d3a7de416a9b7ebaec994c43bc92080b18e4cf6c05627f42bf058bef960daf41b0b72c6d8b87a679fd3f94fcc637c5fdb5f9ceab77f53e
6
+ metadata.gz: ca1a13f1bba3006f2c97a4bfaeface0fa472df0a4caf54143d5a0e7afe11b413baaa2be32958f1840f6241bd95ee9217a1373fb7acf353e50dbbed2f7ec61c35
7
+ data.tar.gz: 011557cccb33381c31df5659baff3a8c88abb0310042186bab14e8ba9a1cff8faedd49a1ab6352eaaf416af780ff94ffe3d6aa057f704dca0d4f7c118b5ae44c
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: "install Caskroom/cask/android-sdk")
13
- elsif FastlaneCore::Helper.linux?
14
- Actions::BrewAction.run(command: "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: "list --cask --versions android-sdk || brew install --cask 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.0"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,46 +1,46 @@
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.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philipp Burgk
8
8
  - Michael Ruhl
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-24 00:00:00.000000000 Z
12
+ date: 2022-02-11 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.3.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.3.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,20 +110,20 @@ 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
126
- description:
125
+ version: '0'
126
+ description:
127
127
  email:
128
128
  - philipp.burgk@novatec-gmbh.de
129
129
  - michael.ruhl@novatec-gmbh.de
@@ -141,7 +141,7 @@ homepage: https://github.com/NovaTecConsulting/fastlane-plugin-android_sdk_updat
141
141
  licenses:
142
142
  - MIT
143
143
  metadata: {}
144
- post_install_message:
144
+ post_install_message:
145
145
  rdoc_options: []
146
146
  require_paths:
147
147
  - lib
@@ -156,9 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
158
  requirements: []
159
- rubyforge_project:
160
- rubygems_version: 2.6.10
161
- signing_key:
159
+ rubygems_version: 3.0.8
160
+ signing_key:
162
161
  specification_version: 4
163
162
  summary: Install required Android-SDK packages
164
163
  test_files: []