Skip to content

Commit cd82bf8

Browse files
authored
Merge pull request #29 from semaphoreci/revert-28-env
Revert "Substitute env vars in Docker Images and change_in expressions."
2 parents 2030ea2 + 78fa02c commit cd82bf8

File tree

8 files changed

+7
-335
lines changed

8 files changed

+7
-335
lines changed

.semaphore/semaphore.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,7 @@ blocks:
5858
- test/e2e/change_in_excluded_paths.rb
5959
- test/e2e/change_in_glob.rb
6060
- test/e2e/change_in_invalid_when.rb
61-
- test/e2e/change_in_java_vs_javascript_clash.rb
62-
- test/e2e/change_in_large_commit_diff.rb
63-
- test/e2e/change_in_large_commit_diff_on_default_branch.rb
6461
- test/e2e/change_in_missing_branch.rb
65-
- test/e2e/change_in_multiple_functions_in_one_when.rb
6662
- test/e2e/change_in_multiple_paths.rb
6763
- test/e2e/change_in_on_forked_prs.rb
6864
- test/e2e/change_in_on_prs.rb
@@ -72,8 +68,9 @@ blocks:
7268
- test/e2e/change_in_relative_paths.rb
7369
- test/e2e/change_in_simple.rb
7470
- test/e2e/change_in_with_default_branch.rb
75-
- test/e2e/env_simple.rb
76-
- test/e2e/env_vars_in_docker_images.rb
71+
- test/e2e/change_in_java_vs_javascript_clash.rb
72+
- test/e2e/change_in_large_commit_diff.rb
73+
- test/e2e/change_in_large_commit_diff_on_default_branch.rb
7774
- test/e2e/when_conditions_without_change_in.rb
7875

7976
commands:

pkg/cli/evaluate.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ var evaluateChangeInCmd = &cobra.Command{
3434
ppl, err := pipelines.LoadFromFile(input)
3535
check(err)
3636

37-
err = ppl.SubstituteEnvVarsInDockerImages()
38-
check(err)
39-
4037
err = ppl.EvaluateChangeIns()
4138
check(err)
4239

pkg/pipelines/model.go

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@ package pipelines
22

33
import (
44
"encoding/json"
5-
"os"
6-
"strconv"
75
"time"
86

97
gabs "github.com/Jeffail/gabs/v2"
108
"github.com/ghodss/yaml"
11-
consolelogger "github.com/semaphoreci/spc/pkg/consolelogger"
129
)
1310

1411
type Pipeline struct {
@@ -20,61 +17,16 @@ func n() int64 {
2017
return time.Now().UnixNano() / int64(time.Millisecond)
2118
}
2219

23-
func (p *Pipeline) UpdateString(path []string, value string) error {
20+
func (p *Pipeline) UpdateWhenExpression(path []string, value string) error {
2421
_, err := p.raw.Set(value, path...)
2522

2623
return err
2724
}
2825

29-
func (p *Pipeline) GetStringValueFrom(path []string) (string, bool) {
30-
val, ok := p.raw.Search(path...).Data().(string)
31-
return val, ok
32-
}
33-
3426
func (p *Pipeline) EvaluateChangeIns() error {
3527
return newWhenEvaluator(p).Run()
3628
}
3729

38-
func (p *Pipeline) SubstituteEnvVarsInDockerImages() error {
39-
consolelogger.Info("Expanding environment variables in YAML file")
40-
consolelogger.EmptyLine()
41-
42-
containers := p.raw.Search("agent", "containers").Children()
43-
44-
for containerIndex := range containers {
45-
path := []string{"agent", "containers", strconv.Itoa(containerIndex), "image"}
46-
47-
p.expandEnvIfExists(path)
48-
}
49-
50-
for blockIndex := range p.Blocks() {
51-
path := []string{"blocks", strconv.Itoa(blockIndex), "agent", "containers"}
52-
53-
containers := p.raw.Search(path...).Children()
54-
55-
for containerIndex := range containers {
56-
path := append(path, []string{strconv.Itoa(containerIndex), "image"}...)
57-
58-
p.expandEnvIfExists(path)
59-
}
60-
}
61-
62-
return nil
63-
}
64-
65-
func (p *Pipeline) expandEnvIfExists(path []string) {
66-
if value, ok := p.GetStringValueFrom(path); ok {
67-
newValue := os.ExpandEnv(value)
68-
69-
consolelogger.Infof("Expanding env vars in %+v\n", path)
70-
consolelogger.Infof("Original: '%s'\n", value)
71-
consolelogger.Infof("Expanded: '%s'\n", newValue)
72-
consolelogger.EmptyLine()
73-
74-
p.UpdateString(path, newValue)
75-
}
76-
}
77-
7830
func (p *Pipeline) Blocks() []*gabs.Container {
7931
return p.raw.Search("blocks").Children()
8032
}

pkg/pipelines/when_evaluator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (e *whenEvaluator) Run() error {
5555

5656
func (e *whenEvaluator) updatePipeline() error {
5757
for index := range e.results {
58-
err := e.pipeline.UpdateString(e.list[index].Path, e.results[index])
58+
err := e.pipeline.UpdateWhenExpression(e.list[index].Path, e.results[index])
5959

6060
if err != nil {
6161
return err

pkg/when/env/env.go

Lines changed: 0 additions & 36 deletions
This file was deleted.

pkg/when/expression.go

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
gabs "github.com/Jeffail/gabs/v2"
55
consolelogger "github.com/semaphoreci/spc/pkg/consolelogger"
66
changein "github.com/semaphoreci/spc/pkg/when/changein"
7-
env "github.com/semaphoreci/spc/pkg/when/env"
87
whencli "github.com/semaphoreci/spc/pkg/when/whencli"
98
)
109

@@ -18,22 +17,7 @@ type WhenExpression struct {
1817

1918
func (w *WhenExpression) Eval() error {
2019
for _, requirment := range w.ListChangeInFunctions(w.Requirments) {
21-
result, err := w.EvaluateChangeInFunction(requirment)
22-
if err != nil {
23-
return err
24-
}
25-
26-
input := map[string]interface{}{}
27-
input["name"] = w.functionName(requirment)
28-
input["params"] = w.functionParams(requirment)
29-
input["result"] = result
30-
31-
w.ReduceInputs.Keywords = map[string]interface{}{}
32-
w.ReduceInputs.Functions = append(w.ReduceInputs.Functions, input)
33-
}
34-
35-
for _, requirment := range w.ListEnvFunctions(w.Requirments) {
36-
result, err := w.EvaluateEnvFunction(requirment)
20+
result, err := w.EvalFunction(requirment)
3721
if err != nil {
3822
return err
3923
}
@@ -62,18 +46,6 @@ func (w *WhenExpression) ListChangeInFunctions(requirments *gabs.Container) []*g
6246
return result
6347
}
6448

65-
func (w *WhenExpression) ListEnvFunctions(requirments *gabs.Container) []*gabs.Container {
66-
result := []*gabs.Container{}
67-
68-
for _, input := range requirments.Children() {
69-
if w.IsEnvFunction(input) {
70-
result = append(result, input)
71-
}
72-
}
73-
74-
return result
75-
}
76-
7749
func (w *WhenExpression) IsChangeInFunction(input *gabs.Container) bool {
7850
elType := input.Search("type").Data().(string)
7951
if elType != "fun" {
@@ -87,20 +59,7 @@ func (w *WhenExpression) IsChangeInFunction(input *gabs.Container) bool {
8759
return true
8860
}
8961

90-
func (w *WhenExpression) IsEnvFunction(input *gabs.Container) bool {
91-
elType := input.Search("type").Data().(string)
92-
if elType != "fun" {
93-
return false
94-
}
95-
96-
if w.functionName(input) != "env" {
97-
return false
98-
}
99-
100-
return true
101-
}
102-
103-
func (w *WhenExpression) EvaluateChangeInFunction(input *gabs.Container) (bool, error) {
62+
func (w *WhenExpression) EvalFunction(input *gabs.Container) (bool, error) {
10463
consolelogger.EmptyLine()
10564

10665
consolelogger.Infof("%s(%+v)\n", w.functionName(input), w.functionParams(input))
@@ -113,19 +72,6 @@ func (w *WhenExpression) EvaluateChangeInFunction(input *gabs.Container) (bool,
11372
return changein.Eval(fun)
11473
}
11574

116-
func (w *WhenExpression) EvaluateEnvFunction(input *gabs.Container) (string, error) {
117-
consolelogger.EmptyLine()
118-
119-
consolelogger.Infof("%s(%+v)\n", w.functionName(input), w.functionParams(input))
120-
121-
fun, err := env.Parse(input)
122-
if err != nil {
123-
return "", err
124-
}
125-
126-
return env.Eval(fun)
127-
}
128-
12975
func (w *WhenExpression) functionName(input *gabs.Container) string {
13076
return input.Search("name").Data().(string)
13177
}

test/e2e/env_simple.rb

Lines changed: 0 additions & 88 deletions
This file was deleted.

0 commit comments

Comments
 (0)