# HG changeset patch # User Steeve Chailloux <steeve.chailloux@orus.io> # Date 1657206336 -7200 # Thu Jul 07 17:05:36 2022 +0200 # Node ID bb131b976fd6c88c237d3ba8a5800644e5cf4a85 # Parent 34b21d48e4e676f39e6f85bd97d8506c3f6a051e fix linter errors diff --git a/runner/config.go b/runner/config.go --- a/runner/config.go +++ b/runner/config.go @@ -100,6 +100,9 @@ return nil, fmt.Errorf("fail to read config file: %s - %w", configPath, err) } err = yaml.Unmarshal(configFile, &config) + if err != nil { + return nil, fmt.Errorf("fail unmarshal config file: %s - %w", configPath, err) + } return &config, nil } @@ -433,7 +436,7 @@ t, err := fasttemplate.NewTemplate(template, "<[", "]>") if err != nil { - return fmt.Errorf("unexpected error when parsing template: %s", err) + return fmt.Errorf("unexpected error when parsing template: %w", err) } s := t.ExecuteString(variables) if _, err := output.Write([]byte(s)); err != nil { diff --git a/runner/config_test.go b/runner/config_test.go --- a/runner/config_test.go +++ b/runner/config_test.go @@ -2,6 +2,7 @@ import ( "bytes" + "fmt" "os" "path/filepath" "testing" @@ -116,37 +117,51 @@ buildDir := filepath.Join(shaFixtures, "build", "example") configMap := filepath.Join(buildDir, "ConfigMap.v1.demo.yaml") - cm := parseFile(t, configMap) - sha := getLabel(t, cm, "mysha") + cm, err := parseFile(configMap) + require.NoError(t, err) + sha, err := getLabel(cm, "mysha") + require.NoError(t, err) require.Equal(t, shaValue, sha) deployment := filepath.Join(buildDir, "Deployment.apps_v1.nginx.yaml") - deploy := parseFile(t, deployment) - sha = getLabel(t, deploy, "config.sha") + deploy, err := parseFile(deployment) + require.NoError(t, err) + sha, err = getLabel(deploy, "config.sha") + require.NoError(t, err) require.Equal(t, shaValue, sha) } -func getLabel(t *testing.T, resource map[string]interface{}, label string) string { +func getLabel(resource map[string]interface{}, label string) (string, error) { metadata, ok := resource["metadata"].(map[interface{}]interface{}) - require.True(t, ok) + if !ok { + return "", fmt.Errorf("fail to get label") + } labels, ok := metadata["labels"].(map[interface{}]interface{}) - require.True(t, ok) + if !ok { + return "", fmt.Errorf("fail to get label") + } result, ok := labels[label].(string) - require.True(t, ok) - return result + if !ok { + return "", fmt.Errorf("fail to get label") + } + return result, nil } -func parseFile(t *testing.T, input string) map[string]interface{} { +func parseFile(input string) (map[string]interface{}, error) { resource := make(map[string]interface{}) content, err := os.ReadFile(input) - require.NoError(t, err) + if err != nil { + return nil, fmt.Errorf("fail to parse: %w", err) + } byteContent := bytes.NewReader(content) decoder := yaml.NewDecoder(byteContent) err = decoder.Decode(&resource) - require.NoError(t, err) + if err != nil { + return nil, fmt.Errorf("fail to parse: %w", err) + } - return resource + return resource, nil } diff --git a/runner/main.go b/runner/main.go --- a/runner/main.go +++ b/runner/main.go @@ -55,6 +55,9 @@ return fmt.Errorf("cannot clean dir: %s: %w", outputDir, err) } variables, err := r.config.prepareVariables(true) + if err != nil { + return fmt.Errorf("cannot prepare variables: %w", err) + } for _, file := range files { inFilePath := filepath.Join(preBuildDir, file.Name()) outFilePath := filepath.Join(outputDir, file.Name())