diff --git a/README.md b/README.md index 17a9520..74f42cb 100644 --- a/README.md +++ b/README.md @@ -112,8 +112,10 @@ Which will produce: | **browserify** | Specifies whether to browserify build or not | CORDOVA_BROWSERIFY | *false* | | **cordova_prepare** | Specifies whether to run `ionic cordova prepare` before building | CORDOVA_PREPARE | *true* | | **min_sdk_version** | Overrides the value of minSdkVersion set in `AndroidManifest.xml` | CORDOVA_ANDROID_MIN_SDK_VERSION | '' | -| **cordova_no_fetch** | Specifies whether to run `ionic cordova platform add` with `--nofetch` parameter | CORDOVA_NO_FETCH | *false* | +| **cordova_no_fetch** | Specifies whether to run `ionic cordova platform add` with `--nofetch` parameter | CORDOVA_NO_FETCH | *false* | | **build_flag** | An array of Xcode buildFlag. Will be appended on compile command. | CORDOVA_IOS_BUILD_FLAG | [] | +| **project** | Call `ionic cordova compile` with `--project=` to specify project in multi-projects monorepo, the project is looked up by key in the projects object *(Since Ionic CLI 4.3.0+)* | CORDOVA_PROJECT | | +| **configuration** | Call `ionic cordova compile` with `--configuration=` to specify the configuration to use (for instance to manage environment in angular) *(Since Ionic CLI 4.10.2+)* | CORDOVA_CONFIGURATION | | | **cordova_build_config_file** | Call `ionic cordova compile` with `--buildConfig=` to specify build config file path | CORDOVA_BUILD_CONFIG_FILE | | diff --git a/lib/fastlane/plugin/ionic/actions/ionic_action.rb b/lib/fastlane/plugin/ionic/actions/ionic_action.rb index 1adfe23..ebb099a 100644 --- a/lib/fastlane/plugin/ionic/actions/ionic_action.rb +++ b/lib/fastlane/plugin/ionic/actions/ionic_action.rb @@ -80,11 +80,17 @@ def self.get_ios_args(params) def self.check_platform(params) platform = params[:platform] if platform && !File.directory?("./platforms/#{platform}") + cmd = "ionic cordova platform add #{platform} --no-interactive" + if params[:cordova_no_fetch] - sh "ionic cordova platform add #{platform} --no-interactive --nofetch" - else - sh "ionic cordova platform add #{platform} --no-interactive" + cmd << " --nofetch" + end + + if !params[:project].to_s.empty? + cmd << " --project #{params[:project]}" end + + sh cmd end end @@ -105,6 +111,14 @@ def self.build(params) args << "--buildConfig=#{Shellwords.escape(params[:cordova_build_config_file])}" end + if !params[:project].to_s.empty? + args << "--project #{params[:project]}" + end + + if !params[:configuration].to_s.empty? + args << "--configuration=#{params[:configuration]}" + end + android_args = self.get_android_args(params) if params[:platform].to_s == 'android' ios_args = self.get_ios_args(params) if params[:platform].to_s == 'ios' @@ -270,6 +284,20 @@ def self.available_options default_value: false, is_string: false ), + FastlaneCore::ConfigItem.new( + key: :project, + env_name: "CORDOVA_PROJECT", + description: "Specifies project in multi-projects monorepo, the project is looked up by key in the projects object", + default_value: '', + is_string: true + ), + FastlaneCore::ConfigItem.new( + key: :configuration, + env_name: "CORDOVA_CONFIGURATION", + description: "Specifies the configuration to use (for instance to manage environment in angular)", + default_value: '', + is_string: true + ), FastlaneCore::ConfigItem.new( key: :cordova_prepare, env_name: "CORDOVA_PREPARE", diff --git a/lib/fastlane/plugin/ionic/version.rb b/lib/fastlane/plugin/ionic/version.rb index 6adacad..8dd6e91 100644 --- a/lib/fastlane/plugin/ionic/version.rb +++ b/lib/fastlane/plugin/ionic/version.rb @@ -1,5 +1,5 @@ module Fastlane module Ionic - VERSION = "0.1.0" + VERSION = "0.1.1" end end