summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorDan Duvall <dduvall@wikimedia.org>2018-04-04 15:28:21 -0700
committerDan Duvall <dduvall@wikimedia.org>2018-04-05 13:24:01 -0700
commit26b998456a566989e054f18f5dc8934fa3fc904d (patch)
treebab51963a654987b572cb22c6ef9f33753049fa5 /docker
parent73ee493d6e54ed097edfad2a8d782584a6035cea (diff)
downloadblubber-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.go4
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: {}`))