Releases: buildkite/go-pipeline
v0.5.1
v0.5.0
🗒️ Some input pipelines will now parse with a non-nil error, that didn't before. Code that calls Parse
should check for the new error type provided by the warning
package before aborting, since the parsed pipeline could still be accepted by Buildkite.
What's Changed
- Remove newlines from ordered.Map JSON by @DrJosh9000 in #25
- System for reporting warnings (soft errors) by @DrJosh9000 in #27
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.19 to 2.0.20 by @dependabot in #28
- fix: Env test flakes on Windows by @DrJosh9000 in #29
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.20 to 2.0.21 by @dependabot in #30
Full Changelog: v0.4.1...v0.5.0
v0.4.1
What's Changed
- Cleanup docs and tests after v0.4.0 by @triarius in #21
- fix: YAML marshaling of wait, block, and input by @DrJosh9000 in #22
- chore: reduce repetition in wait/input step marshaling by @DrJosh9000 in #23
- chore: lots more YAML marshaling in tests by @DrJosh9000 in #24
Full Changelog: v0.4.0...v0.4.1
v0.4.0
v0.4.0 (2024-02-09)
Firstly, the type that is required to be passed into pipeline.(*Pipeline).Interpolate
has changed from a map[string]string
to an interface, pipeline.InterpolationEnv
.
type InterpolationEnv interface {
Get(string) (string, bool)
Set(string, string)
}
This allows some equivalence between environment variable names to be established by the user, for example, on Windows, the environment variable names may be case-insensitive. If the implementation supports this, the pipeline interpolation will also support this. For example, this pipeline:
steps:
- command: echo $Foo $FOO
with an InterpolationEnv
that whose Get
method returns "bar"
for "foo"
regardless of the case, will be interpolated to
steps:
- command: echo bar bar
Previously, it was not possible to do this without adding the case-variants to the map[string]string
.
Another breaking change is that previously, when interpolating the pipeline level environment block, a pipeline level environment variable could take precedence over environment variables in the argument to pipeline.(*Pipeline).Interpolate
(aka the runtime env in the context of a job running on an agent) depending on the ordering. This may have contravened Buildkite's documentation that suggests the Job runtime environment takes precedence over that defined by combining environment variables defined in a pipeline. This led to results like this:
Suppose the runtime env consisted of FOO=runtime_foo
. The following pipeline
env:
BAR: $FOO
FOO: pipeline_foo
steps:
- command: echo hello world
would be interpolated to become:
env:
BAR: runtime_foo
FOO: pipeline_foo
steps:
- command: echo hello world
On the other hand, the pipeline
env:
FOO: pipeline_foo
BAR: $FOO
steps:
- command: echo hello world
would be interpolated to become
env:
FOO: pipeline_foo
BAR: pipeline_foo
steps:
- command: echo hello world
We think this is inconsistent with runtime env taking precedence, and if users would like to interpolate $FOO
as the value of the pipeline level definition of FOO
, they should ensure the runtime env does not contain FOO=runtime_foo
.
Fixed
- Environment variable interpolation was not capable of being case-insensitive on Windows #20 (@triarius)
- Precedence of Runtime Variables over Pipeline and Step Environment variables, even after they collide after interpolation #20 (@triarius)
Dependencies
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.18 to 2.0.19 #19 (@dependabot[bot])
v0.3.2
v0.3.1
v0.3.1 (2023-12-05)
Fixed
Dependencies
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.17 to 2.0.18 #16 (@dependabot[bot])
v0.3.0
v0.3.0 (2023-11-29)
Added
- Add support for
key
andlabel
fields on Command and Group steps #11 (@DrJosh9000)
Removed
- [Breaking] Remove support for signing jobs with HMAC-SHA algorithms #13 (@moskyb)
- [Breaking] Only allow 512-bit signature algorithms (remove support for
*256
and*384
signing algorithms) #12 (@moskyb)
Changed
- Bump github.com/lestrrat-go/jwx/v2 from 2.0.16 to 2.0.17 #15 (@dependabot[bot])
- Update Go to 1.21 #14 (@moskyb)
v0.2.1
v0.2.1 (2023-11-13)
Fixed
- Fix marshalling of plugins without config #7 (@triarius)
- Update doc comments for plugin Marshal{JSON,YAML} #8 (@DrJosh9000)
Internal
- Add build status and Go doc shields #9 (@DrJosh9000)
v0.2.0
[Retracted] v1.0.1
This release exists to retract the accidentally-released v1.0.0, and to retract itself. The latest current version is v0.1.0.