Class: Pindo::Command::Android::Autobuild

Inherits:
Pindo::Command::Android show all
Includes:
Appselect, Githelper
Defined in:
lib/pindo/command/android/autobuild.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Githelper

#add_branch, #add_tag, #add_tag_with_check, #clone_clang_repo, #clone_devclang_repo, #clone_pindo_common_config_repo, #clone_pindo_env_config_repo, #clong_buildconfig_repo, #get_repo_base_name, #getcode_to_dir, #git_addpush_repo, #git_latest_commit_id, #git_root_directory, #is_git_directory?, #local_branch_exists?, #local_tag_exists?, #prepare_gitenv, #process_need_add_files, #remote_branch_exists?, #remote_tag_exists?, #remove_branch, #remove_tag

Methods included from Executable

capture_command, #executable, execute_command, which, which!

Methods included from Appselect

#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_bundleid, #get_selected_dev_bundleid, #get_setting_bundleid_withdir, #load_setting, #select_main_app

Constructor Details

#initialize(argv) ⇒ Autobuild

Returns a new instance of Autobuild.



52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/pindo/command/android/autobuild.rb', line 52

def initialize(argv)
  @args_release_flag = argv.flag?('release', false)
  @args_upload_flag = argv.flag?('upload', false)
  @args_send_flag = argv.flag?('send', false)
  @args_proj_name = argv.option('proj')


  if @args_send_flag
    @args_upload_flag = true
  end

  super
  @additional_args = argv.remainder!
end

Class Method Details

.optionsObject



43
44
45
46
47
48
49
50
# File 'lib/pindo/command/android/autobuild.rb', line 43

def self.options
  [
    ['--release',     '使用Release模式构建'],
    ['--proj=NAME',   '指定上传到测试平台的项目名称'],
    ['--upload',      '编译后上传到测试平台(自动发送给自己)'],
    ['--send',        '发送通知到测试群组(同时发送给自己)']
  ].concat(super)
end

.use_cache?Boolean

启用缓存机制

Returns:

  • (Boolean)


19
20
21
# File 'lib/pindo/command/android/autobuild.rb', line 19

def self.use_cache?
  true  # 此命令启用缓存
end

Instance Method Details

#runObject



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/pindo/command/android/autobuild.rb', line 67

def run
  pindo_project_dir = Dir.pwd

  # 加载 JPS 配置(如果存在)
  context = Pindo::PindoContext.instance
  context.load_and_apply_jps_config(pindo_project_dir)

  # 确认并应用缓存(如果有)
  context.confirm_and_apply_cache
  build_helper = Pindo::BuildHelper.share_instance
  project_type = build_helper.project_type(pindo_project_dir)

  args_temp = []
  args_temp << "--proj=#{@args_proj_name}" if @args_proj_name
  args_temp << "--upload" if @args_upload_flag
  args_temp << "--send" if @args_send_flag

  case project_type
  when :ios
    puts "iOS 工程, 请使用 pindo ios build"
  when :android
    android_autobuild
  when :unity
    Pindo::Command::Unity::Apk::run(args_temp)
  else
    raise Informative, "当前目录不是工程目录,不能编译"
  end
end