diff options
author | Dan Duvall <dduvall@wikimedia.org> | 2018-04-04 15:28:21 -0700 |
---|---|---|
committer | Dan Duvall <dduvall@wikimedia.org> | 2018-04-05 13:24:01 -0700 |
commit | 26b998456a566989e054f18f5dc8934fa3fc904d (patch) | |
tree | bab51963a654987b572cb22c6ef9f33753049fa5 /docker | |
parent | 73ee493d6e54ed097edfad2a8d782584a6035cea (diff) | |
download | blubber-26b998456a566989e054f18f5dc8934fa3fc904d.tar.gz |
Introduce strict/versioned config parsing
Summary:
Introduced a `version` config field that must be specified and match
`config.CurrentVersion`.
Changed `config.ReadConfig` to use `yaml.UnmarshalStrict` to ensure that
errors are surfaced when unknown/bad fields are present in the given
YAML config. A smaller `config.VersionConfig` is now unmarshaled first
to prevalidate the new `version` field before the entire config is
parsed.
Fixes T191460
Test Plan:
Run `go test ./...`. Run `blubber` against some configuration containing
invalid fields and ensure that it surfaces a YAML error.
Reviewers: thcipriani, demon, hashar, mmodell, mobrovac, #release-engineering-team
Reviewed By: thcipriani, #release-engineering-team
Tags: #release-engineering-team
Maniphest Tasks: T191460
Differential Revision: https://phabricator.wikimedia.org/D1021
Diffstat (limited to 'docker')
-rw-r--r-- | docker/compiler_test.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/docker/compiler_test.go b/docker/compiler_test.go index 846304b..c5e2a28 100644 --- a/docker/compiler_test.go +++ b/docker/compiler_test.go @@ -13,6 +13,7 @@ import ( func TestSingleStageHasNoName(t *testing.T) { cfg, err := config.ReadConfig([]byte(`--- + version: v1 base: foo/bar variants: development: {}`)) @@ -27,6 +28,7 @@ func TestSingleStageHasNoName(t *testing.T) { func TestMultiStageIncludesStageNames(t *testing.T) { cfg, err := config.ReadConfig([]byte(`--- + version: v1 base: foo/bar variants: build: {} @@ -50,6 +52,7 @@ func TestMultiStageIncludesStageNames(t *testing.T) { func TestMultipleArtifactsFromSameStage(t *testing.T) { cfg, err := config.ReadConfig([]byte(`--- + version: v1 base: foo/bar variants: build: {} @@ -76,6 +79,7 @@ func TestMultipleArtifactsFromSameStage(t *testing.T) { func TestMetaDataLabels(t *testing.T) { cfg, err := config.ReadConfig([]byte(`--- + version: v1 base: foo/bar variants: development: {}`)) |