Class: Embulk::Input::Buildkite

Inherits:
InputPlugin
  • Object
show all
Defined in:
lib/embulk/input/buildkite.rb

Defined Under Namespace

Classes: Logger

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.resume(task, columns, count, &control) ⇒ Object



40
41
42
43
44
45
# File 'lib/embulk/input/buildkite.rb', line 40

def self.resume(task, columns, count, &control)
  task_reports = yield(task, columns, count)

  next_config_diff = {}
  return next_config_diff
end

.transaction(config, &control) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/embulk/input/buildkite.rb', line 19

def self.transaction(config, &control)
  # configuration code:
  task = {
    "org_slug" => config.param("org_slug", :string),
    "pipeline_slug" => config.param("pipeline_slug", :string),
    "build_nums" => config.param("build_nums", :array),
    "token" => config.param("token", :string, nil),
  }

  columns = [
    Column.new(0, "id", :long),
    Column.new(1, "data", :string),
    Column.new(2, "log", :string),
    Column.new(3, "started_at", :timestamp),
    Column.new(4, "build_number", :long),
    Column.new(5, "build_data", :string),
  ]

  resume(task, columns, 1, &control)
end

Instance Method Details

#initObject

TODO def self.guess(config)

sample_records = [
  {"example"=>"a", "column"=>1, "value"=>0.1},
  {"example"=>"a", "column"=>2, "value"=>0.2},
]
columns = Guess::SchemaGuess.from_hash_records(sample_records)
return {"columns" => columns}

end



57
58
59
# File 'lib/embulk/input/buildkite.rb', line 57

def init
  # initialization code:
end

#runObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/embulk/input/buildkite.rb', line 61

def run
  task['build_nums'].each do |build_num|
    logger.info("Start build_num:[#{build_num}]")

    build = client.fetch_build(number: build_num)
    build[:jobs].each do |job|
      logger.info("Start Start job_id:[#{job[:id]}]")
      log = client.fetch_log(build_number: job[:build_number], job_id: job[:id])[:output]

      page_builder.add([
        job[:id],
        job.to_json,
        log,
        job[:started_at],
        job[:build_number],
        build.to_json,
      ])

      page_builder.flush
    end
  end

  page_builder.finish

  task_report = {}
  return task_report
end