Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ead5873
wip
gireesh-naidu Apr 10, 2023
1c4daf1
putting default build comtext to value to root dir
gireesh-naidu Apr 10, 2023
074f6e9
fix
gireesh-naidu Apr 10, 2023
39edfe8
Merge branch 'main' into build-context
gireesh-naidu Apr 13, 2023
9dc3c1a
script added
gireesh-naidu Apr 13, 2023
41632d3
script added
gireesh-naidu Apr 13, 2023
59b5b7f
gitmaterial id added for build context
gireesh-naidu Apr 26, 2023
9ec24cf
fix
gireesh-naidu Apr 27, 2023
140b1b0
fix
gireesh-naidu Apr 27, 2023
a10a466
sql file update
gireesh-naidu May 2, 2023
cb10b78
fix
gireesh-naidu May 2, 2023
a688f9f
Merge branch 'main' into build-context
gireesh-naidu May 2, 2023
cbe47f9
fix
gireesh-naidu May 2, 2023
ec0e2fe
Merge branch 'main' into build-context
gireesh-naidu May 8, 2023
39c008e
sql script number updated
gireesh-naidu May 8, 2023
643454a
minor fix
gireesh-naidu May 8, 2023
9b8f232
minor fix
gireesh-naidu May 8, 2023
44f7e1f
minor fix
gireesh-naidu May 9, 2023
48c506d
minor fix
gireesh-naidu May 10, 2023
da70bd5
remove '.' from empty context
gireesh-naidu May 10, 2023
de4733b
Merge branch 'main' into build-context
gireesh-naidu May 11, 2023
ef06cc9
sql script updated
gireesh-naidu May 11, 2023
2253579
typo
gireesh-naidu May 11, 2023
ffd3a2f
code review changes
gireesh-naidu May 11, 2023
86aec9a
fix
gireesh-naidu May 12, 2023
8e542be
fix
gireesh-naidu May 12, 2023
478b48d
remove build-context column from db
gireesh-naidu May 12, 2023
ec3c25f
Merge branch 'main' into build-context
gireesh-naidu May 12, 2023
672737f
script number change
gireesh-naidu May 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions api/appbean/AppDetail.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type DockerBuildConfig struct {
Args map[string]string `json:"args,omitempty"`
TargetPlatform string `json:"targetPlatform"`
DockerBuildOptions map[string]string `json:"dockerBuildOptions,omitempty"`
BuildContext string `json:"buildContext"`
}

type DeploymentTemplate struct {
Expand Down
1 change: 1 addition & 0 deletions api/restHandler/CoreAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -1271,6 +1271,7 @@ func (handler CoreAppRestHandlerImpl) createDockerConfig(appId int, dockerConfig
DockerBuildOptions: dockerBuildConfig.DockerBuildOptions,
Args: dockerBuildConfig.Args,
TargetPlatform: dockerBuildConfig.TargetPlatform,
BuildContext: dockerBuildConfig.BuildContext,
},
}
}
Expand Down
10 changes: 10 additions & 0 deletions internal/sql/repository/pipelineConfig/CiPipelineMaterial.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ type CiPipelineMaterialRepository interface {
GetRegexByPipelineId(id int) ([]*CiPipelineMaterial, error)
CheckRegexExistsForMaterial(id int) bool
GetByPipelineIdForRegexAndFixed(id int) ([]*CiPipelineMaterial, error)
GetCheckoutPath(gitMaterialId int) (string, error)
}

type CiPipelineMaterialRepositoryImpl struct {
Expand Down Expand Up @@ -164,3 +165,12 @@ func (impl CiPipelineMaterialRepositoryImpl) CheckRegexExistsForMaterial(id int)
}
return exists
}

func (impl CiPipelineMaterialRepositoryImpl) GetCheckoutPath(gitMaterialId int) (string, error) {
var checkoutPath string
err := impl.dbConnection.Model((*GitMaterial)(nil)).
Column("git_material.checkout_path").
Where("id=?", gitMaterialId).
Select(&checkoutPath)
return checkoutPath, err
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ import (
)

type CiTemplateOverride struct {
tableName struct{} `sql:"ci_template_override" pg:",discard_unknown_columns"`
Id int `sql:"id"`
CiPipelineId int `sql:"ci_pipeline_id"`
DockerRegistryId string `sql:"docker_registry_id"`
DockerRepository string `sql:"docker_repository"`
DockerfilePath string `sql:"dockerfile_path"`
GitMaterialId int `sql:"git_material_id"`
Active bool `sql:"active,notnull"`
CiBuildConfigId int `sql:"ci_build_config_id"`
tableName struct{} `sql:"ci_template_override" pg:",discard_unknown_columns"`
Id int `sql:"id"`
CiPipelineId int `sql:"ci_pipeline_id"`
DockerRegistryId string `sql:"docker_registry_id"`
DockerRepository string `sql:"docker_repository"`
DockerfilePath string `sql:"dockerfile_path"`
GitMaterialId int `sql:"git_material_id"`
BuildContextGitMaterialId int `sql:"build_context_git_material_id"`
Active bool `sql:"active,notnull"`
CiBuildConfigId int `sql:"ci_build_config_id"`
sql.AuditLog
GitMaterial *GitMaterial
DockerRegistry *repository.DockerArtifactStore
Expand Down
34 changes: 18 additions & 16 deletions internal/sql/repository/pipelineConfig/CiTemplateRepository.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,24 @@ import (
)

type CiTemplate struct {
tableName struct{} `sql:"ci_template" pg:",discard_unknown_columns"`
Id int `sql:"id"`
AppId int `sql:"app_id"` //foreign key of app
DockerRegistryId *string `sql:"docker_registry_id"` //foreign key of registry
DockerRepository string `sql:"docker_repository"`
DockerfilePath string `sql:"dockerfile_path"`
Args string `sql:"args"` //json string format of map[string]string
TargetPlatform string `sql:"target_platform,notnull"`
BeforeDockerBuild string `sql:"before_docker_build"` //json string format of []*Task
AfterDockerBuild string `sql:"after_docker_build"` //json string format of []*Task
TemplateName string `sql:"template_name"`
Version string `sql:"version"` //gocd etage
Active bool `sql:"active,notnull"`
GitMaterialId int `sql:"git_material_id"`
DockerBuildOptions string `sql:"docker_build_options"` //json string format of map[string]string
CiBuildConfigId int `sql:"ci_build_config_id"`
tableName struct{} `sql:"ci_template" pg:",discard_unknown_columns"`
Id int `sql:"id"`
AppId int `sql:"app_id"` //foreign key of app
DockerRegistryId *string `sql:"docker_registry_id"` //foreign key of registry
DockerRepository string `sql:"docker_repository"`
DockerfilePath string `sql:"dockerfile_path"`
Args string `sql:"args"` //json string format of map[string]string
TargetPlatform string `sql:"target_platform,notnull"`
BeforeDockerBuild string `sql:"before_docker_build"` //json string format of []*Task
AfterDockerBuild string `sql:"after_docker_build"` //json string format of []*Task
TemplateName string `sql:"template_name"`
Version string `sql:"version"` //gocd etage
Active bool `sql:"active,notnull"`
GitMaterialId int `sql:"git_material_id"`
BuildContextGitMaterialId int `sql:"build_context_git_material_id"`
DockerBuildOptions string `sql:"docker_build_options"` //json string format of map[string]string
CiBuildConfigId int `sql:"ci_build_config_id"`
//BuildContext string `sql:"build_context,notnull"`
sql.AuditLog
App *app.App
DockerRegistry *dockerRegistryRepository.DockerArtifactStore
Expand Down
10 changes: 6 additions & 4 deletions pkg/pipeline/CiCdPipelineOrchestrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,9 @@ func (impl CiCdPipelineOrchestratorImpl) PatchMaterialValue(createRequest *bean.
DockerRegistryId: createRequest.DockerConfigOverride.DockerRegistry,
DockerRepository: createRequest.DockerConfigOverride.DockerRepository,
//DockerfilePath: createRequest.DockerConfigOverride.DockerBuildConfig.DockerfilePath,
GitMaterialId: ciBuildConfigBean.GitMaterialId,
Active: true,
GitMaterialId: ciBuildConfigBean.GitMaterialId,
BuildContextGitMaterialId: ciBuildConfigBean.BuildContextGitMaterialId,
Active: true,
AuditLog: sql.AuditLog{
CreatedOn: time.Now(),
CreatedBy: userId,
Expand Down Expand Up @@ -627,8 +628,9 @@ func (impl CiCdPipelineOrchestratorImpl) CreateCiConf(createRequest *bean.CiConf
DockerRegistryId: ciPipeline.DockerConfigOverride.DockerRegistry,
DockerRepository: ciPipeline.DockerConfigOverride.DockerRepository,
//DockerfilePath: ciPipeline.DockerConfigOverride.DockerBuildConfig.DockerfilePath,
GitMaterialId: ciPipeline.DockerConfigOverride.CiBuildConfig.GitMaterialId,
Active: true,
GitMaterialId: ciPipeline.DockerConfigOverride.CiBuildConfig.GitMaterialId,
BuildContextGitMaterialId: ciPipeline.DockerConfigOverride.CiBuildConfig.BuildContextGitMaterialId,
Active: true,
AuditLog: sql.AuditLog{
CreatedBy: createRequest.UserId,
CreatedOn: time.Now(),
Expand Down
7 changes: 7 additions & 0 deletions pkg/pipeline/CiService.go
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,7 @@ func (impl *CiServiceImpl) buildWfRequestForCiPipeline(pipeline *pipelineConfig.
dockerRepository = ciTemplate.DockerRepository
ciBuildConfigEntity := ciTemplate.CiBuildConfig
ciBuildConfigBean, err = bean2.ConvertDbBuildConfigToBean(ciBuildConfigEntity)
ciBuildConfigBean.BuildContextGitMaterialId = ciTemplate.BuildContextGitMaterialId
if err != nil {
impl.Logger.Errorw("error occurred while converting buildconfig dbEntity to configBean", "ciBuildConfigEntity", ciBuildConfigEntity, "err", err)
return nil, errors.New("error while parsing ci build config")
Expand All @@ -433,7 +434,13 @@ func (impl *CiServiceImpl) buildWfRequestForCiPipeline(pipeline *pipelineConfig.
impl.Logger.Errorw("error occurred while overriding ci build config", "oldArgs", oldArgs, "ciLevelArgs", ciLevelArgs, "error", err)
return nil, errors.New("error while parsing ci build config")
}
buildContextCheckoutPath, err := impl.ciPipelineMaterialRepository.GetCheckoutPath(ciBuildConfigBean.BuildContextGitMaterialId)
if err != nil {
impl.Logger.Errorw("error occurred while getting checkout path from git material", "gitMaterialId", ciBuildConfigBean.BuildContextGitMaterialId, "error", err)
return nil, err
}
if ciBuildConfigBean.CiBuildType == bean2.SELF_DOCKERFILE_BUILD_TYPE || ciBuildConfigBean.CiBuildType == bean2.MANAGED_DOCKERFILE_BUILD_TYPE {
ciBuildConfigBean.DockerBuildConfig.BuildContext = filepath.Join(buildContextCheckoutPath, ciBuildConfigBean.DockerBuildConfig.BuildContext)
dockerBuildConfig := ciBuildConfigBean.DockerBuildConfig
dockerfilePath = filepath.Join(checkoutPath, dockerBuildConfig.DockerfilePath)
dockerBuildConfig.DockerfilePath = dockerfilePath
Expand Down
2 changes: 2 additions & 0 deletions pkg/pipeline/CiTemplateService.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ func (impl CiTemplateServiceImpl) FindByAppId(appId int) (ciTemplateBean *bean.C
}
}
ciBuildConfigBean.GitMaterialId = ciTemplate.GitMaterialId
ciBuildConfigBean.BuildContextGitMaterialId = ciTemplate.BuildContextGitMaterialId
return &bean.CiTemplateBean{
CiTemplate: ciTemplate,
CiBuildConfig: ciBuildConfigBean,
Expand Down Expand Up @@ -146,6 +147,7 @@ func (impl CiTemplateServiceImpl) extractBuildConfigBean(templateOverride *pipel
}
}
ciBuildConfigBean.GitMaterialId = templateOverride.GitMaterialId
ciBuildConfigBean.BuildContextGitMaterialId = templateOverride.BuildContextGitMaterialId
return ciBuildConfigBean, nil
}

Expand Down
6 changes: 4 additions & 2 deletions pkg/pipeline/PipelineBuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -1148,7 +1148,8 @@ func (impl PipelineBuilderImpl) UpdateCiTemplate(updateRequest *bean.CiConfigReq
originalCiBuildConfig := originalCiConf.CiBuildConfig
ciTemplate := &pipelineConfig.CiTemplate{
//DockerfilePath: originalCiConf.DockerBuildConfig.DockerfilePath,
GitMaterialId: ciBuildConfig.GitMaterialId,
GitMaterialId: ciBuildConfig.GitMaterialId,
BuildContextGitMaterialId: ciBuildConfig.BuildContextGitMaterialId,
//Args: string(argByte),
//TargetPlatform: originalCiConf.DockerBuildConfig.TargetPlatform,
AppId: originalCiConf.AppId,
Expand Down Expand Up @@ -1250,7 +1251,8 @@ func (impl PipelineBuilderImpl) CreateCiPipeline(createRequest *bean.CiConfigReq
ciTemplate := &pipelineConfig.CiTemplate{
//DockerRegistryId: createRequest.DockerRegistry,
//DockerRepository: createRequest.DockerRepository,
GitMaterialId: buildConfig.GitMaterialId,
GitMaterialId: buildConfig.GitMaterialId,
BuildContextGitMaterialId: buildConfig.BuildContextGitMaterialId,
//DockerfilePath: createRequest.DockerBuildConfig.DockerfilePath,
//Args: string(argByte),
//TargetPlatform: createRequest.DockerBuildConfig.TargetPlatform,
Expand Down
13 changes: 8 additions & 5 deletions pkg/pipeline/bean/CiBuildConfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ const (
)

type CiBuildConfigBean struct {
Id int `json:"id"`
GitMaterialId int `json:"gitMaterialId,omitempty" validate:"required"`
CiBuildType CiBuildType `json:"ciBuildType"`
DockerBuildConfig *DockerBuildConfig `json:"dockerBuildConfig,omitempty"`
BuildPackConfig *BuildPackConfig `json:"buildPackConfig"`
Id int `json:"id"`
GitMaterialId int `json:"gitMaterialId,omitempty" validate:"required"`
BuildContextGitMaterialId int `json:"buildContextGitMaterialId,omitempty" validate:"required"`
CiBuildType CiBuildType `json:"ciBuildType"`
DockerBuildConfig *DockerBuildConfig `json:"dockerBuildConfig,omitempty"`
BuildPackConfig *BuildPackConfig `json:"buildPackConfig"`
}

type DockerBuildConfig struct {
Expand All @@ -32,6 +33,7 @@ type DockerBuildConfig struct {
Language string `json:"language,omitempty"`
LanguageFramework string `json:"languageFramework,omitempty"`
DockerBuildOptions map[string]string `json:"dockerBuildOptions,omitempty"`
BuildContext string `json:"buildContext,omitempty"`
}

type BuildPackConfig struct {
Expand Down Expand Up @@ -138,6 +140,7 @@ func OverrideCiBuildConfig(dockerfilePath string, oldArgs string, ciLevelArgs st
Args: dockerArgs,
TargetPlatform: targetPlatform,
DockerBuildOptions: dockerBuildOptionsMap,
BuildContext: "",
},
}
} else if ciBuildConfigBean.CiBuildType == SELF_DOCKERFILE_BUILD_TYPE || ciBuildConfigBean.CiBuildType == MANAGED_DOCKERFILE_BUILD_TYPE {
Expand Down
4 changes: 4 additions & 0 deletions scripts/sql/139_alter_ci_template.down.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ALTER TABLE ci_template DROP COLUMN IF EXISTS build_context_git_material_id;
ALTER TABLE ci_template DROP CONSTRAINT IF EXISTS ci_template_build_context_git_material_id_fkey;
ALTER TABLE ci_template_override DROP COLUMN IF EXISTS build_context_git_material_id;
ALTER TABLE ci_template_override DROP CONSTRAINT IF EXISTS ci_template_override_build_context_git_material_id_fkey;
10 changes: 10 additions & 0 deletions scripts/sql/139_alter_ci_template.up.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ALTER TABLE ci_template ADD COLUMN build_context_git_material_id INT;
UPDATE ci_template SET build_context_git_material_id = git_material_id;
ALTER TABLE ci_template_override ADD COLUMN build_context_git_material_id INT;
UPDATE ci_template_override SET build_context_git_material_id = git_material_id;

ALTER TABLE ci_template
ADD CONSTRAINT "ci_template_build_context_git_material_id_fkey" FOREIGN KEY ("build_context_git_material_id") REFERENCES "public"."git_material" ("id");

ALTER TABLE ci_template_override
ADD CONSTRAINT "ci_template_override_build_context_git_material_id_fkey" FOREIGN KEY ("build_context_git_material_id") REFERENCES "public"."git_material" ("id");