You've already forked sap-jenkins-library
							
							
				mirror of
				https://github.com/SAP/jenkins-library.git
				synced 2025-10-30 23:57:50 +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:
		| @@ -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) | ||||
|   | ||||
| @@ -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{ | ||||
|   | ||||
| @@ -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) | ||||
| 	}) | ||||
| } | ||||
|   | ||||
| @@ -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" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user