Class: Flutter::Command::Build

Inherits:
Flutter::Command show all
Defined in:
lib/build.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Build

Returns a new instance of Build.



28
29
30
31
32
33
34
35
36
# File 'lib/build.rb', line 28

def initialize(argv)
  super
  @build_only = argv.flag?("build-only")
  Flutter::Config.instance.ignore_gp = argv.flag?("ignore-gp")
  Flutter::Config.instance.debug = argv.flag?("debug")
  # flutter module 根目录
  Flutter::Config.instance.project_dir = argv.option("project-dir")
  Flutter::Config.instance.config = argv.shift_argument
end

Class Method Details

.optionsObject



18
19
20
21
22
23
24
25
26
# File 'lib/build.rb', line 18

def self.options
  [
    ["--build-only", "build only Don\u2019t deploy"],
    ["--ignore-gp", "Don\u2019t pull new code from remote, use your local code"],
    ["--messae=msg", "git commit log"],
    ["--branch=branch", "which branch to build"],
    ["--project-dir=/project/dir", "The path to the root of the project directory"]
  ].concat(super)
end

Instance Method Details

#runObject



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/build.rb', line 46

def run
  # 尝试更新私有库
  Repo.repo_update
  produce = Flutter::Produce.new
  # 构建前的初始化工作
  produce.setup
  # 开始构建
  result = produce.build
  # 上传到私服
  raise "构建失败,请检查环境配置......".red unless result

  # 输出产物信息
  produce.log
  return if @build_only

  # 上传
  deploy = Flutter::Upload.new
  deploy.upload
end

#validate!Object



38
39
40
41
42
43
44
# File 'lib/build.rb', line 38

def validate!
  super
  build_type = Config.instance.config
  return unless !build_type.nil? && !Flutter::Config.instance.product_types.include?(build_type)

  help! "构建类型指定错误,请输入要构建包的类型:(debug/profile/release)".red
end