Skip to content

Commit b9d54d1

Browse files
fix: Build context backward compatability (#3408)
* backward compatibility added for build context * rename * remove required tag on bool value * remove not null constraint * fix * test commit * changed the root context column to ci_build_config table * made the column nullable * column name length constraint fix * sql script fix * removed commented lines * comments added
1 parent 8ad55a7 commit b9d54d1

File tree

5 files changed

+22
-4
lines changed

5 files changed

+22
-4
lines changed

internal/sql/repository/pipelineConfig/CiBuildConfigRepository.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ type CiBuildConfig struct {
1212
Type string `sql:"type"`
1313
CiTemplateId int `sql:"ci_template_id"`
1414
CiTemplateOverrideId int `sql:"ci_template_override_id"`
15+
UseRootContext *bool `sql:"use_root_context"`
1516
BuildMetadata string `sql:"build_metadata"`
1617
sql.AuditLog
1718
}

pkg/pipeline/CiService.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,10 @@ func (impl *CiServiceImpl) buildWfRequestForCiPipeline(pipeline *pipelineConfig.
445445
if buildContextCheckoutPath == "" {
446446
buildContextCheckoutPath = checkoutPath
447447
}
448+
if ciBuildConfigBean.UseRootBuildContext {
449+
//use root build context i.e '.'
450+
buildContextCheckoutPath = "."
451+
}
448452
if ciBuildConfigBean.CiBuildType == bean2.SELF_DOCKERFILE_BUILD_TYPE || ciBuildConfigBean.CiBuildType == bean2.MANAGED_DOCKERFILE_BUILD_TYPE {
449453
ciBuildConfigBean.DockerBuildConfig.BuildContext = filepath.Join(buildContextCheckoutPath, ciBuildConfigBean.DockerBuildConfig.BuildContext)
450454
dockerBuildConfig := ciBuildConfigBean.DockerBuildConfig

pkg/pipeline/bean/CiBuildConfig.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ type CiBuildConfigBean struct {
2020
Id int `json:"id"`
2121
GitMaterialId int `json:"gitMaterialId,omitempty" validate:"required"`
2222
BuildContextGitMaterialId int `json:"buildContextGitMaterialId,omitempty" validate:"required"`
23+
UseRootBuildContext bool `json:"useRootBuildContext"`
2324
CiBuildType CiBuildType `json:"ciBuildType"`
2425
DockerBuildConfig *DockerBuildConfig `json:"dockerBuildConfig,omitempty"`
2526
BuildPackConfig *BuildPackConfig `json:"buildPackConfig"`
@@ -68,6 +69,7 @@ func ConvertBuildConfigBeanToDbEntity(templateId int, overrideTemplateId int, ci
6869
CiTemplateOverrideId: overrideTemplateId,
6970
BuildMetadata: buildMetadata,
7071
AuditLog: sql.AuditLog{UpdatedOn: time.Now(), UpdatedBy: userId},
72+
UseRootContext: &ciBuildConfigBean.UseRootBuildContext,
7173
}
7274
return ciBuildConfigEntity, nil
7375
}
@@ -91,11 +93,17 @@ func ConvertDbBuildConfigToBean(dbBuildConfig *pipelineConfig.CiBuildConfig) (*C
9193
return nil, err
9294
}
9395
}
96+
useRootBuildContext := false
97+
//dbBuildConfig.UseRootContext will be nil if the entry in db never updated before
98+
if dbBuildConfig.UseRootContext == nil || *(dbBuildConfig.UseRootContext) {
99+
useRootBuildContext = true
100+
}
94101
ciBuildConfigBean := &CiBuildConfigBean{
95-
Id: dbBuildConfig.Id,
96-
CiBuildType: ciBuildType,
97-
BuildPackConfig: buildPackConfig,
98-
DockerBuildConfig: dockerBuildConfig,
102+
Id: dbBuildConfig.Id,
103+
CiBuildType: ciBuildType,
104+
BuildPackConfig: buildPackConfig,
105+
DockerBuildConfig: dockerBuildConfig,
106+
UseRootBuildContext: useRootBuildContext,
99107
}
100108
return ciBuildConfigBean, nil
101109
}
@@ -131,6 +139,7 @@ func OverrideCiBuildConfig(dockerfilePath string, oldArgs string, ciLevelArgs st
131139
return nil, err
132140
}
133141
}
142+
//no entry found in ci_build_config table, construct with requested data
134143
if ciBuildConfigBean == nil {
135144
dockerArgs := mergeMap(oldDockerArgs, ciLevelDockerArgs)
136145
ciBuildConfigBean = &CiBuildConfigBean{
@@ -142,6 +151,8 @@ func OverrideCiBuildConfig(dockerfilePath string, oldArgs string, ciLevelArgs st
142151
DockerBuildOptions: dockerBuildOptionsMap,
143152
BuildContext: "",
144153
},
154+
//setting true as default
155+
UseRootBuildContext: true,
145156
}
146157
} else if ciBuildConfigBean.CiBuildType == SELF_DOCKERFILE_BUILD_TYPE || ciBuildConfigBean.CiBuildType == MANAGED_DOCKERFILE_BUILD_TYPE {
147158
dockerBuildConfig := ciBuildConfigBean.DockerBuildConfig
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE ci_build_config DROP COLUMN IF EXISTS use_root_context;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE ci_build_config ADD COLUMN IF NOT EXISTS "use_root_context" bool;

0 commit comments

Comments
 (0)