You've already forked sap-jenkins-library
mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-11-06 09:09:19 +02:00
fix(cnbBuild): exclude registry domain from the imageNameTag CPE field (#3296)
This commit is contained in:
@@ -362,9 +362,6 @@ func runCnbBuild(config *cnbBuildOptions, telemetryData *telemetry.CustomData, u
|
||||
}
|
||||
}
|
||||
|
||||
var containerImage string
|
||||
var containerImageTag string
|
||||
|
||||
if len(config.ContainerRegistryURL) == 0 || len(config.ContainerImageName) == 0 || len(config.ContainerImageTag) == 0 {
|
||||
log.SetErrorCategory(log.ErrorConfiguration)
|
||||
return errors.New("containerRegistryUrl, containerImageName and containerImageTag must be present")
|
||||
@@ -377,12 +374,26 @@ func runCnbBuild(config *cnbBuildOptions, telemetryData *telemetry.CustomData, u
|
||||
log.SetErrorCategory(log.ErrorConfiguration)
|
||||
return errors.Wrapf(err, "failed to read containerRegistryUrl %s", config.ContainerRegistryURL)
|
||||
}
|
||||
commonPipelineEnvironment.container.registryURL = config.ContainerRegistryURL
|
||||
} else {
|
||||
containerRegistry = config.ContainerRegistryURL
|
||||
commonPipelineEnvironment.container.registryURL = fmt.Sprintf("https://%v", config.ContainerRegistryURL)
|
||||
}
|
||||
|
||||
containerImage = fmt.Sprintf("%s/%s", containerRegistry, config.ContainerImageName)
|
||||
containerImageTag = strings.ReplaceAll(config.ContainerImageTag, "+", "-")
|
||||
containerImage := path.Join(containerRegistry, config.ContainerImageName)
|
||||
containerImageTag := strings.ReplaceAll(config.ContainerImageTag, "+", "-")
|
||||
commonPipelineEnvironment.container.imageNameTag = fmt.Sprintf("%v:%v", config.ContainerImageName, containerImageTag)
|
||||
|
||||
targets := []string{
|
||||
fmt.Sprintf("%s:%s", containerImage, containerImageTag),
|
||||
}
|
||||
|
||||
for _, tag := range config.AdditionalTags {
|
||||
target := fmt.Sprintf("%s:%s", containerImage, tag)
|
||||
if !piperutils.ContainsString(targets, target) {
|
||||
targets = append(targets, target)
|
||||
}
|
||||
}
|
||||
|
||||
if len(config.CustomTLSCertificateLinks) > 0 {
|
||||
caCertificates := "/tmp/ca-certificates.crt"
|
||||
@@ -411,21 +422,6 @@ func runCnbBuild(config *cnbBuildOptions, telemetryData *telemetry.CustomData, u
|
||||
return errors.Wrapf(err, "execution of '%s' failed", builderPath)
|
||||
}
|
||||
|
||||
containerImageNameTag := fmt.Sprintf("%s:%s", containerImage, containerImageTag)
|
||||
targets := []string{
|
||||
containerImageNameTag,
|
||||
}
|
||||
|
||||
commonPipelineEnvironment.container.registryURL = config.ContainerRegistryURL
|
||||
commonPipelineEnvironment.container.imageNameTag = containerImageNameTag
|
||||
|
||||
for _, tag := range config.AdditionalTags {
|
||||
target := fmt.Sprintf("%s:%s", containerImage, tag)
|
||||
if !piperutils.ContainsString(targets, target) {
|
||||
targets = append(targets, target)
|
||||
}
|
||||
}
|
||||
|
||||
utils.AppendEnv([]string{fmt.Sprintf("CNB_REGISTRY_AUTH=%s", string(cnbRegistryAuth))})
|
||||
err = utils.RunExecutable(exporterPath, targets...)
|
||||
if err != nil {
|
||||
|
||||
@@ -58,6 +58,8 @@ func TestRunCnbBuild(t *testing.T) {
|
||||
assert.Equal(t, []string{"-buildpacks", "/cnb/buildpacks", "-order", "/cnb/order.toml", "-platform", "/tmp/platform"}, runner.Calls[0].Params)
|
||||
assert.Equal(t, []string{"-buildpacks", "/cnb/buildpacks", "-platform", "/tmp/platform"}, runner.Calls[1].Params)
|
||||
assert.Equal(t, []string{fmt.Sprintf("%s/%s:%s", registry, config.ContainerImageName, config.ContainerImageTag)}, runner.Calls[2].Params)
|
||||
assert.Equal(t, commonPipelineEnvironment.container.registryURL, fmt.Sprintf("https://%s", registry))
|
||||
assert.Equal(t, commonPipelineEnvironment.container.imageNameTag, "my-image:0.0.1")
|
||||
})
|
||||
|
||||
t.Run("success case (registry without https)", func(t *testing.T) {
|
||||
@@ -85,6 +87,8 @@ func TestRunCnbBuild(t *testing.T) {
|
||||
assert.Equal(t, []string{"-buildpacks", "/cnb/buildpacks", "-order", "/cnb/order.toml", "-platform", "/tmp/platform"}, runner.Calls[0].Params)
|
||||
assert.Equal(t, []string{"-buildpacks", "/cnb/buildpacks", "-platform", "/tmp/platform"}, runner.Calls[1].Params)
|
||||
assert.Equal(t, []string{fmt.Sprintf("%s/%s:%s", registry, config.ContainerImageName, config.ContainerImageTag)}, runner.Calls[2].Params)
|
||||
assert.Equal(t, commonPipelineEnvironment.container.registryURL, fmt.Sprintf("https://%s", registry))
|
||||
assert.Equal(t, commonPipelineEnvironment.container.imageNameTag, "my-image:0.0.1")
|
||||
})
|
||||
|
||||
t.Run("success case (custom buildpacks and custom env variables, renaming docker conf file, additional tag)", func(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user