fastlane-plugin-android_sdk_update 0.1.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []