Class: Pindo::Command::Appstore::Autobuild
- Inherits:
-
Pindo::Command::Appstore
- Object
- CLAide::Command
- Pindo::Command
- Pindo::Command::Appstore
- Pindo::Command::Appstore::Autobuild
- Includes:
- Appselect, XcodeAppConfig
- Defined in:
- lib/pindo/command/appstore/autobuild.rb
Constant Summary
Constants inherited from Pindo::Command
DEFAULT_OPTIONS, DEFAULT_ROOT_OPTIONS
Instance Attribute Summary
Attributes inherited from Pindo::Command
Class Method Summary collapse
-
.option_items ⇒ Object
定义此命令使用的参数项.
-
.options ⇒ Object
命令的选项列表.
Instance Method Summary collapse
-
#initialize(argv) ⇒ Autobuild
constructor
A new instance of Autobuild.
- #run ⇒ Object
Methods included from Appselect
#all_deploy_bundle_name, #all_dev_bundle_name, #all_dev_bundleid, #all_itc_bundleid, #all_release_bundleid, #all_tool_bundleid, #deploy_build_setting_json, #dev_build_setting_json, #get_deploy_repo_with_modul_name, #get_deploy_setting_repo, #get_dev_setting_repo, #get_selected_deploy_bundle_name, #get_selected_deploy_bundleid, #get_selected_dev_bundle_name, #get_selected_dev_bundleid, #get_setting_bundleid_withdir, #load_setting, #select_main_app
Methods included from XcodeAppConfig
#add_pod_modue, #add_project_modue, #auto_increase_buildnumber, #create_release_tag, #find_group, #modify_appprefix_plist, #remove_test_pod_modue
Methods inherited from Pindo::Command
command_name, #initialize_options, run, use_cache?, #validate!
Methods included from Funlog::Mixin
Methods included from Pindoconfig::Mixin
Constructor Details
#initialize(argv) ⇒ Autobuild
Returns a new instance of Autobuild.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/pindo/command/appstore/autobuild.rb', line 80 def initialize(argv) # 首先获取位置参数(向后兼容) positional_bundleid = argv.shift_argument # 使用 Options 模块初始化参数 = (argv) # 保存参数到实例变量 # 优先使用选项参数,如果没有则使用位置参数 @args_bundle_id = [:bundleid] || positional_bundleid @args_skip_config = argv.flag?('skipconfig', false) @args_skip_lib = argv.flag?('skiplib', false) @args_skip_yoo = argv.flag?('skipyoo', false) # Git 参数 @args_release_branch = [:release_branch] || 'master' @args_tag_type = Pindo::Options::GitOptions.parse_create_tag_type([:tag_type] || 'new') @args_tag_pre = [:tag_pre] || 'ios_release_' super(argv) end |
Class Method Details
.option_items ⇒ Object
定义此命令使用的参数项
66 67 68 69 70 71 72 73 |
# File 'lib/pindo/command/appstore/autobuild.rb', line 66 def self.option_items @option_items ||= Pindo::Options::OptionGroup.merge( Pindo::Options::BuildOptions.select(:bundleid), Pindo::Options::UnityOptions.all, Pindo::Options::GitOptions.except(:tag_pre), Pindo::Options::GitOptions.select_with_defaults(tag_pre: 'ios_release_') ) end |
.options ⇒ Object
命令的选项列表
76 77 78 |
# File 'lib/pindo/command/appstore/autobuild.rb', line 76 def self. option_items.map(&:to_claide_option).concat(super) end |
Instance Method Details
#run ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/pindo/command/appstore/autobuild.rb', line 102 def run pindo_project_dir = Dir.pwd begin # 1. 克隆配置仓库(必须在 Task 外部完成) clone_pindo_common_config_repo(force_delete: false) clone_pindo_env_config_repo(force_delete: false) # 2. 版本检查 Pindo::VersionCheck::check_pindo_force_upgrade() # 3. 处理配置文件 prepare_config(pindo_project_dir) # 4. 创建并执行任务 tasks = make_build_task(pindo_project_dir) # 5. 添加到任务管理器并执行 task_manager = Pindo::TaskSystem::TaskManager.instance task_manager.clear_all tasks.each { |task| task_manager.add_task(task) } task_manager.start puts "Build Done !!!" puts "#{pindo_project_dir}" system "open #{pindo_project_dir}" end end |