You've already forked sap-jenkins-library
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:
@@ -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