fastlane-plugin-android_sdk_update 0.1.1 → 1.0.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
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