Class: DeployGate::Commands::Deploy::Build

Inherits:
Object
  • Object
show all
Defined in:
lib/deploygate/commands/deploy/build.rb

Constant Summary collapse

COMMAND =
'build'

Class Method Summary collapse

Class Method Details

.ios(workspaces, options) ⇒ void

This method returns an undefined value.

Parameters:

  • workspaces (Array)
  • options (Hash)


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/deploygate/commands/deploy/build.rb', line 33

def ios(workspaces, options)
  DeployGate::Xcode::Export.check_local_certificates

  analyze = DeployGate::Xcode::Analyze.new(workspaces)
  target_scheme = analyze.scheme

  bundle_identifier = analyze.target_bundle_identifier
  xcode_provisioning_profile_uuid = analyze.target_xcode_setting_provisioning_profile_uuid

  provisioning_team = analyze.provisioning_team
  target_provisioning_profile = DeployGate::Xcode::Export.provisioning_profile(bundle_identifier, xcode_provisioning_profile_uuid, provisioning_team)

  method = DeployGate::Xcode::Export.method(target_provisioning_profile)

  codesigning_identity= nil
  provisioning_style = analyze.provisioning_style
  if (!over_xcode_8? && provisioning_style == nil) ||
      provisioning_style == DeployGate::Xcode::Analyze::PROVISIONING_STYLE_MANUAL
    # Only run Provisioning Style is Manual or nil
    codesigning_identity = DeployGate::Xcode::Export.codesigning_identity(target_provisioning_profile)
  end

  ipa_path = DeployGate::Xcode::Ios.build(analyze, target_scheme, codesigning_identity, method)
  Push.upload([ipa_path], options)
end

.over_xcode_8?Boolean

Returns:

  • (Boolean)


65
66
67
68
69
70
71
72
73
# File 'lib/deploygate/commands/deploy/build.rb', line 65

def over_xcode_8?
  version = Gym::Xcode.xcode_version
  if version == nil
    print_no_install_xcode
    exit 1
  end

  version.split('.')[0].to_i >= 8
end


75
76
77
78
79
# File 'lib/deploygate/commands/deploy/build.rb', line 75

def print_no_install_xcode
  puts ''
  puts HighLine.color(I18n.t('commands.deploy.build.print_no_install_xcode'), HighLine::YELLOW)
  puts ''
end


59
60
61
62
63
# File 'lib/deploygate/commands/deploy/build.rb', line 59

def print_no_target
  puts ''
  puts HighLine.color(I18n.t('commands.deploy.build.print_no_target'), HighLine::YELLOW)
  puts ''
end

.run(args, options) ⇒ void

This method returns an undefined value.

Parameters:

  • args (Array)
  • options (Hash)


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/deploygate/commands/deploy/build.rb', line 12

def run(args, options)
  # android/ios build
  work_dir = args.empty? ? Dir.pwd : args.first

  # override options command
  options.command = options.command || COMMAND

  if DeployGate::Project.ios?(work_dir)
    root_path = DeployGate::Xcode::Ios.project_root_path(work_dir)
    workspaces = DeployGate::Xcode::Ios.find_workspaces(root_path)
    ios(workspaces, options)
  elsif DeployGate::Project.android?(work_dir)
    DeployGate::Android::GradleDeploy.new(work_dir, options).deploy
  else
    print_no_target
  end
end