Skip to content

Commit

Permalink
Merge pull request #1445 from jonjohnsonjr/range-replacer-pipeline
Browse files Browse the repository at this point in the history
Replace "needs" in range pipelines
  • Loading branch information
jonjohnsonjr authored Aug 20, 2024
2 parents 2dbb223 + 83a46dc commit 98b252c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
13 changes: 11 additions & 2 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,15 @@ func replaceAll(r *strings.Replacer, in []string) []string {
return out
}

func replaceNeeds(r *strings.Replacer, in *Needs) *Needs {
if in == nil {
return nil
}
return &Needs{
Packages: replaceAll(r, in.Packages),
}
}

// propagateChildPipelines performs downward propagation of configuration values.
func (p *Pipeline) propagateChildPipelines() {
for idx := range p.Pipeline {
Expand Down Expand Up @@ -943,7 +952,7 @@ func ParseConfiguration(ctx context.Context, configurationFilePath string, opts
Uses: p.Uses,
With: replacedWith,
Inputs: p.Inputs,
Needs: p.Needs,
Needs: replaceNeeds(replacer, p.Needs),
Label: p.Label,
Runs: replacer.Replace(p.Runs),
WorkDir: replacer.Replace(p.WorkDir),
Expand All @@ -969,7 +978,7 @@ func ParseConfiguration(ctx context.Context, configurationFilePath string, opts
Uses: p.Uses,
With: replacedWith,
Inputs: p.Inputs,
Needs: p.Needs,
Needs: replaceNeeds(replacer, p.Needs),
Label: p.Label,
Runs: replacer.Replace(p.Runs),
WorkDir: replacer.Replace(p.WorkDir),
Expand Down
7 changes: 6 additions & 1 deletion pkg/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,10 @@ subpackages:
runtime:
- wow-some-kinda-dynamically-linked-library-i-guess=1.0
pipeline:
- working-directory: ${{vars.buildLocation}}/subdir/${{range.key}}/${{range.value}}
- needs:
packages:
- ${{range.key}}
working-directory: ${{vars.buildLocation}}/subdir/${{range.key}}/${{range.value}}
runs: |
echo "$PWD"
`), 0644); err != nil {
Expand All @@ -196,6 +199,8 @@ subpackages:
require.Equal(t, cfg.Subpackages[0].Dependencies.ReplacesPriority, "10")
require.Equal(t, cfg.Subpackages[0].Pipeline[0].WorkDir, "/home/build/foo/subdir/a/10")
require.Equal(t, cfg.Subpackages[1].Pipeline[0].WorkDir, "/home/build/foo/subdir/b/20")
require.Equal(t, cfg.Subpackages[0].Pipeline[0].Needs.Packages[0], "a")
require.Equal(t, cfg.Subpackages[1].Pipeline[0].Needs.Packages[0], "b")
}

func Test_propagatePipelines(t *testing.T) {
Expand Down

0 comments on commit 98b252c

Please sign in to comment.