Class: Buildkite::Pipeline

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

Overview

Here is a comment.

Instance Method Summary collapse

Constructor Details

#initializePipeline

Returns a new instance of Pipeline.



11
12
13
14
15
16
17
18
# File 'lib/buildkite.rb', line 11

def initialize
  @steps = []
  @agents = nil
  @env = nil
  @notify = nil
  @secrets = nil
  @priority = nil
end

Instance Method Details

#add_agent(key, value) ⇒ Object



29
30
31
32
# File 'lib/buildkite.rb', line 29

def add_agent(key, value)
  @agents = {} if @agents.nil?
  @agents[key] = value
end

#add_environment_variable(key, value) ⇒ Object



34
35
36
37
# File 'lib/buildkite.rb', line 34

def add_environment_variable(key, value)
  @env = {} if @env.nil?
  @env[key] = value
end

#add_notify(notify) ⇒ Object



39
40
41
# File 'lib/buildkite.rb', line 39

def add_notify(notify)
  @notify = notify
end

#add_step(step) ⇒ self

Adds a step to the pipeline.

Examples:

Adding a CommandStep

command_step = Buildkite::CommandStep.new(label: "Run tests", commands: ["bundle exec rspec"])
pipeline.add_step(command_step)

Adding a BlockStep

block_step = Buildkite::BlockStep.new(label: "Manual approval", block: "Deploy to production")
pipeline.add_step(block_step)

Parameters:

  • step (Buildkite::CommandStep, Buildkite::BlockStep)

    The step to add, which can be either a CommandStep or a BlockStep.

Returns:

  • (self)

    Returns the pipeline itself for chaining.



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

def add_step(step)
  @steps << step
  self
end

#buildObject



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/buildkite.rb', line 62

def build
  pipeline = {
    "steps" => @steps
  }
  pipeline["agents"] = @agents unless @agents.nil?
  pipeline["env"] = @env unless @env.nil?
  pipeline["notify"] = @notify unless @notify.nil?
  pipeline["secrets"] = @secrets unless @secrets.nil?
  pipeline["priority"] = @priority unless @priority.nil?
  pipeline
end

#set_priority(priority) ⇒ Object



24
25
26
27
# File 'lib/buildkite.rb', line 24

def set_priority(priority)
  @priority = priority
  self
end

#set_secrets(secrets) ⇒ Object



20
21
22
# File 'lib/buildkite.rb', line 20

def set_secrets(secrets)
  @secrets = secrets
end

#to_json(*_args) ⇒ Object



74
75
76
# File 'lib/buildkite.rb', line 74

def to_json(*_args)
  JSON.pretty_generate(build, indent: "    ")
end

#to_yamlObject



78
79
80
# File 'lib/buildkite.rb', line 78

def to_yaml
  build.to_yaml
end