1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-09-16 09:26:22 +02:00

cnbBuild: add alias for imageNames for easier valueMapping in helmDeploy (#3822)

Co-authored-by: Ralf Pannemans <ralf.pannemans@sap.com>
Co-authored-by: Sumit Kulhadia <sumit.kulhadia@sap.com>
Co-authored-by: Philipp Stehle <philipp.stehle@sap.com>
This commit is contained in:
Ralf Pannemans
2022-06-15 14:17:46 +02:00
committed by GitHub
parent e828a94c85
commit d28a48896c
4 changed files with 29 additions and 2 deletions

View File

@@ -467,7 +467,11 @@ func runCnbBuild(config *cnbBuildOptions, cnbTelemetry *cnbBuildTelemetry, utils
commonPipelineEnvironment.container.imageNameTag = fmt.Sprintf("%v:%v", targetImage.ContainerImageName, targetImage.ContainerImageTag)
}
commonPipelineEnvironment.container.imageNameTags = append(commonPipelineEnvironment.container.imageNameTags, fmt.Sprintf("%v:%v", targetImage.ContainerImageName, targetImage.ContainerImageTag))
commonPipelineEnvironment.container.imageNames = append(commonPipelineEnvironment.container.imageNames, targetImage.ContainerImageName)
imageNameAlias := targetImage.ContainerImageName
if config.ContainerImageAlias != "" {
imageNameAlias = config.ContainerImageAlias
}
commonPipelineEnvironment.container.imageNames = append(commonPipelineEnvironment.container.imageNames, imageNameAlias)
if config.BuildEnvVars != nil && len(config.BuildEnvVars) > 0 {
log.Entry().Infof("Setting custom environment variables: '%v'", config.BuildEnvVars)

View File

@@ -19,6 +19,7 @@ import (
type cnbBuildOptions struct {
ContainerImageName string `json:"containerImageName,omitempty"`
ContainerImageAlias string `json:"containerImageAlias,omitempty"`
ContainerImageTag string `json:"containerImageTag,omitempty"`
ContainerRegistryURL string `json:"containerRegistryUrl,omitempty"`
Buildpacks []string `json:"buildpacks,omitempty"`
@@ -170,6 +171,7 @@ func CnbBuildCommand() *cobra.Command {
func addCnbBuildFlags(cmd *cobra.Command, stepConfig *cnbBuildOptions) {
cmd.Flags().StringVar(&stepConfig.ContainerImageName, "containerImageName", os.Getenv("PIPER_containerImageName"), "Name of the container which will be built\n`cnbBuild` step will try to identify a containerImageName using the following precedence:\n 1. `containerImageName` parameter.\n 2. `project.id` field of a `project.toml` file.\n 3. `git/repository` parameter of the `commonPipelineEnvironment`.\n 4. `github/repository` parameter of the `commonPipelineEnvironment`.\nIf none of the above was found - an error will be raised.\n")
cmd.Flags().StringVar(&stepConfig.ContainerImageAlias, "containerImageAlias", os.Getenv("PIPER_containerImageAlias"), "Logical name used for this image.\n")
cmd.Flags().StringVar(&stepConfig.ContainerImageTag, "containerImageTag", os.Getenv("PIPER_containerImageTag"), "Tag of the container which will be built")
cmd.Flags().StringVar(&stepConfig.ContainerRegistryURL, "containerRegistryUrl", os.Getenv("PIPER_containerRegistryUrl"), "Container registry where the image should be pushed to")
cmd.Flags().StringSliceVar(&stepConfig.Buildpacks, "buildpacks", []string{}, "List of custom buildpacks to use in the form of '$HOSTNAME/$REPO[:$TAG]'.")
@@ -210,6 +212,15 @@ func cnbBuildMetadata() config.StepData {
Aliases: []config.Alias{{Name: "dockerImageName"}},
Default: os.Getenv("PIPER_containerImageName"),
},
{
Name: "containerImageAlias",
ResourceRef: []config.ResourceReference{},
Scope: []string{"GENERAL", "PARAMETERS", "STAGES", "STEPS"},
Type: "string",
Mandatory: false,
Aliases: []config.Alias{},
Default: os.Getenv("PIPER_containerImageAlias"),
},
{
Name: "containerImageTag",
ResourceRef: []config.ResourceReference{

View File

@@ -580,7 +580,7 @@ uri = "some-buildpack"
ContainerRegistryURL: imageRegistry,
DockerConfigJSON: "/path/to/my-config.json",
AdditionalTags: []string{"3", "3.1", "3.1", "3.1.5"},
MultipleImages: []map[string]interface{}{{"ContainerImageName": "my-image-0"}, {"ContainerImageName": "my-image-1"}},
MultipleImages: []map[string]interface{}{{"ContainerImageName": "my-image-0", "ContainerImageAlias": "simple"}, {"ContainerImageName": "my-image-1"}},
}
expectedImageCount := len(config.MultipleImages)
@@ -612,5 +612,6 @@ uri = "some-buildpack"
}
assert.Equal(t, "my-image-0:3.1.5", commonPipelineEnvironment.container.imageNameTag)
assert.Equal(t, []string{"simple", "my-image-1"}, commonPipelineEnvironment.container.imageNames)
})
}

View File

@@ -51,6 +51,15 @@ spec:
- PARAMETERS
- STAGES
- STEPS
- name: containerImageAlias
type: string
description: |
Logical name used for this image.
scope:
- GENERAL
- PARAMETERS
- STAGES
- STEPS
- name: containerImageTag
aliases:
- name: artifactVersion
@@ -210,10 +219,12 @@ spec:
dockerConfigJsonCredentialsId: CREDENTIALS
multipleImages:
- containerImageName: java-app
alias: java
buildpacks:
- "java"
path: "source/java"
- containerImageName: nodejs-app
alias: nodejs
containerImageTag: v1.0.0
buildpacks:
- "nodejs"