class Buildkite::Builder::Pipeline
Constants
- PIPELINE_DEFINITION_FILE
Attributes
artifacts[R]
data[R]
dsl[R]
extensions[R]
logger[R]
plugins[R]
root[R]
Public Class Methods
new(root, logger: nil)
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 26 def initialize(root, logger: nil) @root = root @logger = logger || Logger.new(File::NULL) @artifacts = [] @plugins = {} @dsl = Dsl.new(self) @extensions = ExtensionManager.new(self) @data = Data.new use(Extensions::Use) use(Extensions::Lib) use(Extensions::Env) use(Extensions::Notify) use(Extensions::Steps) load_manifests end
Public Instance Methods
to_h()
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 59 def to_h @pipeline_hash ||= begin results = benchmark("\nDone (%s)".color(:springgreen)) do dsl.instance_eval(&pipeline_definition) extensions.build end logger.info(results) # Build the pipeline definition from pipeline data. Pipelines::Helpers.sanitize(data.to_definition) end end
to_yaml()
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 71 def to_yaml YAML.dump(to_h) end
upload()
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 43 def upload # Upload the pipeline. Tempfile.create(['pipeline', '.yml']) do |file| file.sync = true file.write(to_yaml) logger.info '+++ :paperclip: Uploading pipeline.yml as artifact' Buildkite::Pipelines::Command.artifact!(:upload, file.path) logger.info '+++ :pipeline: Uploading pipeline' Buildkite::Pipelines::Command.pipeline!(:upload, file.path) end logger.info '+++ :paperclip: Uploading artifacts' upload_artifacts end
Private Instance Methods
load_manifests()
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 79 def load_manifests Loaders::Manifests.load(root).each do |name, asset| Manifest[name] = asset end end
pipeline_definition()
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 95 def pipeline_definition @pipeline_definition ||= load_definition(root.join(PIPELINE_DEFINITION_FILE), Definition::Pipeline) end
upload_artifacts()
click to toggle source
# File lib/buildkite/builder/pipeline.rb, line 85 def upload_artifacts return if artifacts.empty? artifacts.each do |path| if File.exist?(path) Buildkite::Pipelines::Command.artifact!(:upload, path) end end end