fastlane-plugin-ionic 0.0.1 → 0.0.2

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: 8d179eb835417527f3cc1322e07b8ed8ff4d90d3
4
- data.tar.gz: 84c7810e7f7a295f64dd3ea752904cd6f4f1da38
3
+ metadata.gz: 3f9a5b7b3ba70799970af36c04b593d103a24c94
4
+ data.tar.gz: 1beb8a562abe037dcfc1b3d63ff36ca2eccaf1df
5
5
  SHA512:
6
- metadata.gz: fa39f9ffff6e6897bfc10eb1842a4f8ef95479c8089c4475824bb858287761c4c9e88fd126e90c410aff44c5af418924ea5188e4f13b095a7f6f3b3cfbb58342
7
- data.tar.gz: 73778a6dda9e2e4477d4c02e49d7de8ece739ec52881bd56a9f11e7ac344853cf6b365fd7e3b3083d21736d550661676a89aa0b6bc1a87ffe959f833f2f9e281
6
+ metadata.gz: 415582a5eb8c2c010c8bd19c2835b5606b2399b5a2d37723ee7d03b2e4001248f98a0c0078b0536563d16d32c1a9c72e101762ee68f3a4dfb75da1dfa7390f24
7
+ data.tar.gz: bd765bb631defb1237c6a331a01531e391d1d24dd863d5118addc08f4f947decbd4e310b9fb6dae805d5382f9aa6a27112872b26b573e608e649ecd5fec0ae15
data/README.md CHANGED
@@ -1,12 +1,10 @@
1
- # Ionic Plugin
1
+ # _fastlane_ Plugin for Ionic CLI
2
2
 
3
- [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-ionic)
3
+ [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-ionic) [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/ionic-zone/fastlane-plugin-ionic/blob/master/LICENSE)
4
+ [![Gem](https://img.shields.io/gem/v/fastlane-plugin-ionic.svg?style=flat)](http://rubygems.org/gems/fastlane-plugin-ionic)
4
5
 
5
- > Work in Progress: This is a simple fork of the fastlane cordova plugin with "cordova" replaced with "ionic". It is not tested yet at all. Soon it will support all options of `ionic cordova build`.
6
-
7
- ## Features
8
-
9
- - Build your Ionic project inside a lane
6
+ This _fastlane_ plugin lets you build your Ionic Cordova project via the [Ionic Command line tool](https://ionicframework.com/docs/cli/), `ionic`, and its `ionic cordova build` command in a _fastlane_ lane.
7
+ It is based on [fastlane-plugin-cordova](https://github.com/bamlab/fastlane-plugin-cordova) (where it borrows most of its code).
10
8
 
11
9
  ## Getting Started
12
10
 
@@ -16,7 +14,26 @@ This project is a [fastlane](https://github.com/fastlane/fastlane) plugin. To ge
16
14
  fastlane add_plugin ionic
17
15
  ```
18
16
 
19
- Then you can integrate it into your Fastlane setup:
17
+ ## Actions
18
+
19
+ ### `ionic`
20
+
21
+ Run `ionic cordova build` to build your Ionic project.
22
+
23
+ ```ruby
24
+ ionic(
25
+ platform: 'ios', # Build your iOS Ionic project
26
+ )
27
+ ionic(
28
+ platform: 'android', # Build your Android Ionic project
29
+ release: false # Build a "Debug" app
30
+ )
31
+ ```
32
+
33
+
34
+ ## Examples
35
+
36
+ Lanes using these actions could look like this:
20
37
 
21
38
  ```ruby
22
39
  platform :ios do
@@ -52,7 +69,7 @@ apple_id "apple@id.com"
52
69
  team_id "28323HT"
53
70
  ```
54
71
 
55
- If using **Crosswalk**, replace `supply(apk: ENV['CORDOVA_ANDROID_RELEASE_BUILD_PATH'])` by:
72
+ If you're using **Crosswalk**, replace `supply(apk: ENV['CORDOVA_ANDROID_RELEASE_BUILD_PATH'])` (and equivalents) by:
56
73
  ```
57
74
  supply(
58
75
  apk_paths: [
@@ -6,6 +6,9 @@ module Fastlane
6
6
  end
7
7
 
8
8
  class IonicAction < Action
9
+
10
+ # valid action params
11
+
9
12
  ANDROID_ARGS_MAP = {
10
13
  keystore_path: 'keystore',
11
14
  keystore_password: 'storePassword',
@@ -20,6 +23,7 @@ module Fastlane
20
23
  provisioning_profile: 'provisioningProfile',
21
24
  }
22
25
 
26
+ # do rewriting and copying of action params
23
27
  def self.get_platform_args(params, args_map)
24
28
  platform_args = []
25
29
  args_map.each do |action_key, cli_param|
@@ -32,6 +36,8 @@ module Fastlane
32
36
  return platform_args.join(' ')
33
37
  end
34
38
 
39
+ # map action params to the cli param they will be used for
40
+
35
41
  def self.get_android_args(params)
36
42
  if params[:key_password].empty?
37
43
  params[:key_password] = params[:keystore_password]
@@ -44,7 +50,7 @@ module Fastlane
44
50
  app_identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
45
51
 
46
52
  if params[:provisioning_profile].empty?
47
- params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub("-","")}"]
53
+ params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub("-","")}"] # TODO What does this do? Does it also work for `match`?
48
54
  end
49
55
 
50
56
  if params[:type] == 'adhoc'
@@ -57,17 +63,20 @@ module Fastlane
57
63
  return self.get_platform_args(params, IOS_ARGS_MAP)
58
64
  end
59
65
 
60
- def self.check_platform(platform)
66
+ # add cordova platform if missing (run #1)
67
+ def self.check_and_add_platform(platform)
61
68
  if platform && !File.directory?("./platforms/#{platform}")
62
69
  sh "ionic cordova platform add #{platform}"
63
70
  end
64
71
  end
65
72
 
73
+ # app_name
66
74
  def self.get_app_name()
67
75
  config = REXML::Document.new(File.open('config.xml'))
68
- return config.elements['widget'].elements['name'].first.value
76
+ return config.elements['widget'].elements['name'].first.value # TODO Simplify!? (Check logic in cordova)
69
77
  end
70
78
 
79
+ # actual building! (run #2)
71
80
  def self.build(params)
72
81
  args = [params[:release] ? '--release' : '--debug']
73
82
  args << '--device' if params[:device]
@@ -75,8 +84,9 @@ module Fastlane
75
84
  android_args = self.get_android_args(params) if params[:platform].to_s == 'android'
76
85
  ios_args = self.get_ios_args(params) if params[:platform].to_s == 'ios'
77
86
 
87
+ # TODO Extract param string for prepare and compile here
78
88
  if params[:cordova_prepare]
79
- sh "ionic cordova prepare #{params[:platform]} #{args.join(' ')} #{ios_args} -- #{android_args}"
89
+ sh "ionic cordova prepare #{params[:platform]} #{args.join(' ')} -- #{ios_args} -- -- #{android_args}" # TODO only attach set args - makes a nicer command
80
90
  end
81
91
 
82
92
  if params[:platform].to_s == 'ios' && !params[:build_number].to_s.empty?
@@ -90,19 +100,22 @@ module Fastlane
90
100
  )
91
101
  end
92
102
 
93
- sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} #{ios_args} -- #{android_args}"
103
+ sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} -- #{ios_args} -- -- #{android_args}" # TODO only attach set args - makes a nicer command
94
104
  end
95
105
 
106
+ # export build paths (run #3)
96
107
  def self.set_build_paths(is_release)
97
108
  app_name = self.get_app_name()
98
109
  build_type = is_release ? 'release' : 'debug'
99
110
 
100
111
  ENV['CORDOVA_ANDROID_RELEASE_BUILD_PATH'] = "./platforms/android/build/outputs/apk/android-#{build_type}.apk"
101
112
  ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'] = "./platforms/ios/build/device/#{app_name}.ipa"
113
+
114
+ # TODO https://github.com/bamlab/fastlane-plugin-cordova/issues/7
102
115
  end
103
116
 
104
117
  def self.run(params)
105
- self.check_platform(params[:platform])
118
+ self.check_and_add_platform(params[:platform])
106
119
  self.build(params)
107
120
  self.set_build_paths(params[:release])
108
121
  end
@@ -235,7 +248,7 @@ module Fastlane
235
248
  end
236
249
 
237
250
  def self.authors
238
- ['almouro']
251
+ ['Jan Piotrowski']
239
252
  end
240
253
 
241
254
  def self.is_supported?(platform)
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Ionic
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-ionic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Piotrowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-06 00:00:00.000000000 Z
11
+ date: 2017-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -106,7 +106,7 @@ files:
106
106
  - lib/fastlane/plugin/ionic/actions/ionic_action.rb
107
107
  - lib/fastlane/plugin/ionic/helper/ionic_helper.rb
108
108
  - lib/fastlane/plugin/ionic/version.rb
109
- homepage: https://github.com/janpio/fastlane-plugin-ionic
109
+ homepage: https://github.com/ionic-zone/fastlane-plugin-ionic
110
110
  licenses:
111
111
  - MIT
112
112
  metadata: {}