- Add missing attributes to step types.
- Add benchmark as dependency (for Ruby 4).
- Add support for
allowed_teamsoption for input and block steps.
- Add support for
blocked_stateattribute in input steps.
- Support build matrix.
- Support template definition within extensions.
- Add support for
notifyattribute in command steps.
- 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_PATHoverride as part of command abstract.
- Remove warning of method redefined.
- Remove
captureconcept onBuildkite::Pipelines::Command#runand replaced withBuildkite::Pipelines::Command::Resultobject to representOpen3.capture3result.
- Do not upload
pipeline.ymlwhen steps is empty.
- Fix multiple arguments for
depends_on.
- Remove the
DependsOnhelper module since it doesn't do anything additive.
- Add
skipattributes 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-agentcommand failed while using bang commands (artifact!,annotate!,pipeline!, andmeta_data!) - Add
signal_reasonas an automatic retry option
- Fix
PluginManager's error message when plugin was not registered
- Remove
skipstep since it's only mimicingcommandstep with a skip.
- Remove
subpipelinesince it's not a Buildkite standard. - Refactor template handling
- Simplify
groupstep implementation
- Create a
Pluginsextension to take care named plugins from the plugin manager.
- Expose extension manager to be accessible in dsl
- Removes an extra definition of
attr_reader :extensionsin pipeline - Allow
groupsteps 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#runnow usesOpen3.capture3to run system commands, and accepts an optional argcapture. Whencaptureis true, it returns the stdout of the command.captureis true for the meta_data subcommandsgetandkeysand for the artifact subcommandsshasumandsearch.
pluginregistrations now takes an optional default attributes hash as the third argument.
automatic_retry_onnow overwrites rules with the same exit status.
automatically_retry(status:, limit:)has been renamed toautomatic_retry_on(exit_status:, limit:)- Added
automatic_retryfor setting boolean forretry.automatic - Added
manual_retryfor 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
templatefrom 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/libdirectory 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
SortedSetdependency. - Add
annotatepipeline command helper. - Add
StepCollection#findandStepCollection#find!for ease of finding a step by its key in extensions. groupnow supports theemoji:helper. (Eg.group "foobar", emoji: :smile)
- Add support for
group. Processors has been renamed toExtension. Extensions add more capabilities (will document separately).pluginno 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::ContextandBuildKite::Pipelines::PipelinetoBuildKite::Builder::Pipeline(#37)
- Fix the Github API Builder to account for Buildkite having both
.gitand no file exention repository URIs (#33)
- Fix the
filescommand. You now pass in the manifest with the--manifestCLI argument.
- Expose
datafromStepContexttoStep
- Add ability for step to store data in step context
- Move
uploadfromBuildKite::Builder::Commands::RuntoBuildKite::Builder::Context - Add ability to set custom artifacts in context and uplaod before
pipeile upload