Skip to content

Commit 31c7281

Browse files
authored
Merge pull request #754 from vaikas/package-version-fix
Fix a bug where substitutions were not done for runtime.
2 parents cc52692 + 55da4ad commit 31c7281

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

pkg/config/config.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,27 @@ func (cfg *Configuration) applySubstitutionsForProvides() error {
148148
return nil
149149
}
150150

151+
func (cfg *Configuration) applySubstitutionsForRuntime() error {
152+
nw := buildConfigMap(cfg)
153+
for i, runtime := range cfg.Package.Dependencies.Runtime {
154+
var err error
155+
cfg.Package.Dependencies.Runtime[i], err = util.MutateStringFromMap(nw, runtime)
156+
if err != nil {
157+
return fmt.Errorf("failed to apply replacement to provides %q: %w", runtime, err)
158+
}
159+
}
160+
for _, srt := range cfg.Subpackages {
161+
for i, prov := range srt.Dependencies.Runtime {
162+
var err error
163+
srt.Dependencies.Runtime[i], err = util.MutateStringFromMap(nw, prov)
164+
if err != nil {
165+
return fmt.Errorf("failed to apply replacement to provides %q: %w", prov, err)
166+
}
167+
}
168+
}
169+
return nil
170+
}
171+
151172
type Copyright struct {
152173
// Optional: The license paths, typically '*'
153174
Paths []string `yaml:"paths,omitempty"`
@@ -799,6 +820,9 @@ func ParseConfiguration(configurationFilePath string, opts ...ConfigurationParsi
799820
if err := cfg.applySubstitutionsForProvides(); err != nil {
800821
return nil, err
801822
}
823+
if err := cfg.applySubstitutionsForRuntime(); err != nil {
824+
return nil, err
825+
}
802826

803827
// Propagate all child pipelines
804828
cfg.propagatePipelines()

pkg/config/config_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ package:
1717
epoch: 7
1818
description: example using a replacement in provides
1919
dependencies:
20+
runtime:
21+
- ${{package.name}}-config
22+
- ${{vars.bar}}
2023
provides:
2124
- replacement-provides-version=${{package.version}}
2225
- replacement-provides-foo=${{vars.foo}}
@@ -30,6 +33,9 @@ vars:
3033
subpackages:
3134
- name: subpackage
3235
dependencies:
36+
runtime:
37+
- ${{package.name}}-config-${{package.version}}
38+
- ${{vars.foo}}
3339
provides:
3440
- subpackage-version=${{package.version}}
3541
- subpackage-foo=${{vars.foo}}
@@ -53,6 +59,16 @@ subpackages:
5359
"subpackage-foo=FOO",
5460
"subpackage-bar=BAR",
5561
}, cfg.Subpackages[0].Dependencies.Provides)
62+
63+
require.Equal(t, []string{
64+
"replacement-provides-config",
65+
"BAR",
66+
}, cfg.Package.Dependencies.Runtime)
67+
68+
require.Equal(t, []string{
69+
"replacement-provides-config-0.0.1",
70+
"FOO",
71+
}, cfg.Subpackages[0].Dependencies.Runtime)
5672
}
5773

5874
func Test_propagatePipelines(t *testing.T) {

0 commit comments

Comments
 (0)