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
</tr></table>
... (truncated)
Commits
36fe486 Merge pull request #24 from buildkite/more-yaml-in-tests
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/buildkite/go-pipeline from 0.3.1 to 0.4.1.
Release notes
Sourced from github.com/buildkite/go-pipeline's releases.
... (truncated)
Commits
36fe486
Merge pull request #24 from buildkite/more-yaml-in-testsee124ff
chore: lots more YAML marshaling in testsdc4c420
Merge pull request #23 from buildkite/ps-43-signed-pipeline-waitfc3f1a4
chore: reduce repetition in wait/input step marshalingeaac83c
Merge pull request #22 from buildkite/ps-43-signed-pipeline-wait25613ba
fix: YAML marshaling of wait, block, and input4c90292
Merge pull request #21 from buildkite/triarius/040-docs-and-tests814a2e3
Add two tests that demonstrate the precedence of runtime envea25d66
Clean up documentation4cd6280
Merge pull request #20 from buildkite/ps-26-variable-interpolation-weirdness-...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show