- Public send keys for wait step.
- Ensure depends_on does not copy by reference.
- Add StepCollection#move to help with moving steps around in the pipeline.
- Allow skipping group traversal for StepCollection#each.
- Update Buildkite pipelines to use Ruby 3.3 (#116)
- Add priority field on command steps (#117)
- Allow setting pipeline-wide agent settings (#118)
- Upgrade to Ruby 3.3 for docker distribution.
- Move
BUILDKITE_BUILDER_PIPELINE_PATH
override as part of command abstract.
- Remove warning of method redefined.
- Remove
capture
concept onBuildkite::Pipelines::Command#run
and replaced withBuildkite::Pipelines::Command::Result
object to representOpen3.capture3
result.
- Do not upload
pipeline.yml
when steps is empty.
- Fix multiple arguments for
depends_on
.
- Remove the
DependsOn
helper module since it doesn't do anything additive.
- Add
skip
attributes to Block and Input steps.
- Add more group step attributes as listed in https://buildkite.com/docs/pipelines/group-step#group-step-attributes
- Simplify pipeline upload duplication check
- Use step id to distinguish different piplelines, fix re-uploading pipeline on same step issue.
- Allow uploading pipeline to different jobs
- Add shared global templates
- Raise error with stderr/stdout message when
buildkite-agent
command failed while using bang commands (artifact!
,annotate!
,pipeline!
, andmeta_data!
) - Add
signal_reason
as an automatic retry option
- Fix
PluginManager
's error message when plugin was not registered
- Remove
skip
step since it's only mimicingcommand
step with a skip.
- Remove
subpipeline
since it's not a Buildkite standard. - Refactor template handling
- Simplify
group
step implementation
- Create a
Plugins
extension to take care named plugins from the plugin manager.
- Expose extension manager to be accessible in dsl
- Removes an extra definition of
attr_reader :extensions
in pipeline - Allow
group
steps to be able to use extension's dsl methods - Show buildkite builder version at the beginning of the command
- Extensions can now take block as argument example
Buildkite::Pipelines::Command#run
now usesOpen3.capture3
to run system commands, and accepts an optional argcapture
. Whencapture
is true, it returns the stdout of the command.capture
is true for the meta_data subcommandsget
andkeys
and for the artifact subcommandsshasum
andsearch
.
plugin
registrations now takes an optional default attributes hash as the third argument.
automatic_retry_on
now overwrites rules with the same exit status.
automatically_retry(status:, limit:)
has been renamed toautomatic_retry_on(exit_status:, limit:)
- Added
automatic_retry
for setting boolean forretry.automatic
- Added
manual_retry
for settingretry.manual
- Fix subpipeline trigger step attributes leak to subpipeline.
- Add support to iterate over subpipelines.
- Allow build options to be passed to subpipelines.
- Remove arguments in sub-pipeline's trigger step setup and use dsl delegation instead.
- Remove
template
from sub-pipeline trigger step setup and use arguments instead.
- Add subpipeline support to save triggered pipeline's YML definition beforehand to artifacts and pass down the file to an ENV for pipeline setup.
- Remove manifest features to prevent Github API dependency and simplify the gem to focus on Buildkite features.
- Fix pipeline upload as artifact logic.
- Upload custom pipeline artifacts in a single command.
- Only upload the pipeline as an artifact when the pipeline upload fails.
- Improve BKB step idempotency.
- Add
.buildkite/lib
directory to $LOAD_PATH if it exists.
- Fix a bug introduced in 2.0.0 where artifacts were being uploaded before extensions had a chance to do work.
- Remove
SortedSet
dependency. - Add
annotate
pipeline command helper. - Add
StepCollection#find
andStepCollection#find!
for ease of finding a step by its key in extensions. group
now supports theemoji:
helper. (Eg.group "foobar", emoji: :smile
)
- Add support for
group
. Processor
s has been renamed toExtension
. Extensions add more capabilities (will document separately).plugin
no longer takes 2 arguments (source, version). It's simply 1 arg that is both source and version, separated by a#
. This is more akin to Buildkite's usage.- Full refactor of pipeline code allowing for extensions to extend DSL methods.
- Merge
BuildKite::Builder::Context
andBuildKite::Pipelines::Pipeline
toBuildKite::Builder::Pipeline
(#37)
- Fix the Github API Builder to account for Buildkite having both
.git
and no file exention repository URIs (#33)
- Fix the
files
command. You now pass in the manifest with the--manifest
CLI argument.
- Expose
data
fromStepContext
toStep
- Add ability for step to store data in step context
- Move
upload
fromBuildKite::Builder::Commands::Run
toBuildKite::Builder::Context
- Add ability to set custom artifacts in context and uplaod before
pipeile upload