Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
88538e8
Ci build config introduced
kripanshdevtron Sep 30, 2022
1635a80
ci build service commit
kripanshdevtron Sep 30, 2022
1609435
migrated to ci template service & ciBuildConfig created
kripanshdevtron Oct 2, 2022
041cf7f
Merge branch 'main' into buildpack-support
kripanshdevtron Oct 2, 2022
cef3406
old data handling + workflow handling
kripanshdevtron Oct 2, 2022
2d2261f
gitMaterialId handling
kripanshdevtron Oct 2, 2022
47f9142
reqd. check removed
kripanshdevtron Oct 3, 2022
6386f6f
ci template service incorporated
kripanshdevtron Oct 3, 2022
0a65e07
id update fix & test case
kripanshdevtron Oct 4, 2022
c7a76d3
ciBuildConfig fetched from db
kripanshdevtron Oct 4, 2022
6bf64df
heroku id added
kripanshdevtron Oct 4, 2022
df5b7d0
Merge branch 'main' into buildpack-support
kripanshdevtron Oct 4, 2022
b179846
args and ciLevel args merging handling
kripanshdevtron Oct 4, 2022
3faffaa
IT test case commit
kripanshdevtron Oct 6, 2022
fa86aa2
nil bug fix
kripanshdevtron Oct 6, 2022
ea507e0
Merge branch 'main' into buildpack-support
kripanshdevtron Oct 6, 2022
7719f7d
DockerBuildOptions in buildconfig
kripanshdevtron Oct 6, 2022
0d01be4
dockerBuildOptions handling
kripanshdevtron Oct 6, 2022
17c58c5
buildconfig audit log and id for update handling
kripanshdevtron Oct 6, 2022
e7b01a0
unit tese cases
kripanshdevtron Oct 8, 2022
600edf4
template override cases
kripanshdevtron Oct 8, 2022
246bec2
ci template update service
kripanshdevtron Oct 9, 2022
cb56b65
save template and buildconfig
kripanshdevtron Oct 9, 2022
254a891
refactoring
kripanshdevtron Oct 10, 2022
d587260
empty template nil handling
kripanshdevtron Oct 11, 2022
1adbf1a
ci build config data from db
kripanshdevtron Oct 11, 2022
58023a3
validate param removed
kripanshdevtron Oct 17, 2022
6313d92
bug fix
kripanshdevtron Oct 17, 2022
5028753
extract dockerfile path from templates
kripanshdevtron Oct 17, 2022
1694db0
append checkout path
kripanshdevtron Oct 17, 2022
8949bac
managed template language and language fw support
kripanshdevtron Oct 21, 2022
ad30327
project path support added
kripanshdevtron Oct 21, 2022
fd6d50e
migration version update
kripanshdevtron Oct 25, 2022
c7040f3
87 down file commit
kripanshdevtron Oct 25, 2022
68db85e
Merge branch 'main' into buildpack-support
kripanshdevtron Oct 25, 2022
1b8cc55
rename migration version
kripanshdevtron Oct 25, 2022
b551bcc
indentation fix
kripanshdevtron Oct 25, 2022
23a293f
dockerfile template doc update
kripanshdevtron Oct 25, 2022
cf09e3a
ci build config id handling for app clone
kripanshdevtron Oct 26, 2022
446f8be
ciBuildconfig id handling for new entry
kripanshdevtron Oct 26, 2022
7bbb262
build type count metadata in telemetry
kripanshdevtron Oct 30, 2022
2027b01
docker mtu value commit
kripanshdevtron Oct 31, 2022
0830976
git material handling in app clone
kripanshdevtron Oct 31, 2022
b225b48
git material id set in case of create
kripanshdevtron Oct 31, 2022
fc9cf4d
ci build docker mtu value
kripanshdevtron Oct 31, 2022
d5656ed
mtu value passed
kripanshdevtron Oct 31, 2022
71af56a
Merge branch 'main' into buildpack-support
kripanshdevtron Nov 1, 2022
fffd7a6
refactored sql patch version
kripanshdevtron Nov 1, 2022
7a7b588
refactoring done
kripanshdevtron Nov 1, 2022
4d72c4b
checkout path handling for dockerfile and buildpack
kripanshdevtron Nov 1, 2022
b64baf5
ci build type dumped in ci workflow
kripanshdevtron Nov 3, 2022
3945821
ci build type added in model
kripanshdevtron Nov 3, 2022
50a6f81
telemetry event data published
kripanshdevtron Nov 3, 2022
6df6f9c
testcases run
kripanshdevtron Nov 3, 2022
90f9322
Merge branch 'main' into buildpack-support
kripanshdevtron Nov 3, 2022
707cf19
Merge branch 'main' into buildpack-support
kripanshdevtron Nov 4, 2022
2793904
git material id fix
kripanshdevtron Nov 4, 2022
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
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ SERVER_MODE_EA_ONLY=EA_ONLY
include $(ENV_FILE)
export

build: clean wire
build: clean wire test
$(ENVVAR) GOOS=$(GOOS) go build -o devtron \
-ldflags="-X 'github.com/devtron-labs/devtron/util.GitCommit=${GIT_COMMIT}' \
-X 'github.com/devtron-labs/devtron/util.BuildTime=${BUILD_TIME}' \
Expand All @@ -30,6 +30,9 @@ wire:
clean:
rm -f devtron

test:
go test ./pkg/pipeline

run: build
./devtron

Expand Down
9 changes: 6 additions & 3 deletions Wire.go
Original file line number Diff line number Diff line change
Expand Up @@ -740,13 +740,16 @@ func InitializeApp() (*App, error) {
wire.Bind(new(repository.UserAttributesRepository), new(*repository.UserAttributesRepositoryImpl)),
pipelineConfig.NewPipelineStatusTimelineRepositoryImpl,
wire.Bind(new(pipelineConfig.PipelineStatusTimelineRepository), new(*pipelineConfig.PipelineStatusTimelineRepositoryImpl)),

wire.Bind(new(pipeline.DeploymentConfigService), new(*pipeline.DeploymentConfigServiceImpl)),
pipeline.NewDeploymentConfigServiceImpl,

pipelineConfig.NewCiTemplateOverrideRepositoryImpl,
wire.Bind(new(pipelineConfig.CiTemplateOverrideRepository), new(*pipelineConfig.CiTemplateOverrideRepositoryImpl)),

pipelineConfig.NewCiBuildConfigRepositoryImpl,
wire.Bind(new(pipelineConfig.CiBuildConfigRepository), new(*pipelineConfig.CiBuildConfigRepositoryImpl)),
pipeline.NewCiBuildConfigServiceImpl,
wire.Bind(new(pipeline.CiBuildConfigService), new(*pipeline.CiBuildConfigServiceImpl)),
pipeline.NewCiTemplateServiceImpl,
wire.Bind(new(pipeline.CiTemplateService), new(*pipeline.CiTemplateServiceImpl)),
router.NewGlobalCMCSRouterImpl,
wire.Bind(new(router.GlobalCMCSRouter), new(*router.GlobalCMCSRouterImpl)),
restHandler.NewGlobalCMCSRestHandlerImpl,
Expand Down
15 changes: 4 additions & 11 deletions api/appbean/AppDetail.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,10 @@ type GitMaterial struct {
}

type DockerConfig struct {
DockerRegistry string `json:"dockerRegistry" validate:"required"`
DockerRepository string `json:"dockerRepository" validate:"required"`
BuildConfig *DockerBuildConfig `json:"dockerBuildConfig"`
}

type DockerBuildConfig struct {
GitCheckoutPath string `json:"gitCheckoutPath,omitempty" validate:"required"`
DockerfileRelativePath string `json:"dockerfileRelativePath,omitempty" validate:"required"`
Args map[string]string `json:"args,omitempty"`
TargetPlatform string `json:"targetPlatform"`
DockerBuildOptions map[string]string `json:"dockerBuildOptions,omitempty"`
DockerRegistry string `json:"dockerRegistry" validate:"required"`
DockerRepository string `json:"dockerRepository" validate:"required"`
CiBuildConfig *bean.CiBuildConfigBean `json:"ciBuildConfig" validate:"required"`
CheckoutPath string `json:"checkoutPath"`
}

type DeploymentTemplate struct {
Expand Down
34 changes: 8 additions & 26 deletions api/restHandler/CoreAppRestHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -491,22 +491,17 @@ func (handler CoreAppRestHandlerImpl) buildDockerConfig(appId int) (*appBean.Doc
}

//getting gitMaterialUrl by id
gitMaterial, err := handler.materialRepository.FindById(ciConfig.DockerBuildConfig.GitMaterialId)
gitMaterial, err := handler.materialRepository.FindById(ciConfig.CiBuildConfig.GitMaterialId)
if err != nil {
handler.logger.Errorw("error in fetching materialUrl by ID in GetAppAllDetail", "err", err, "gitMaterialId", ciConfig.DockerBuildConfig.GitMaterialId)
handler.logger.Errorw("error in fetching materialUrl by ID in GetAppAllDetail", "err", err, "gitMaterialId", ciConfig.CiBuildConfig.GitMaterialId)
return nil, err, http.StatusInternalServerError
}

dockerConfig := &appBean.DockerConfig{
DockerRegistry: ciConfig.DockerRegistry,
DockerRepository: ciConfig.DockerRepository,
BuildConfig: &appBean.DockerBuildConfig{
Args: ciConfig.DockerBuildConfig.Args,
DockerfileRelativePath: ciConfig.DockerBuildConfig.DockerfilePath,
TargetPlatform: ciConfig.DockerBuildConfig.TargetPlatform,
GitCheckoutPath: gitMaterial.CheckoutPath,
DockerBuildOptions: ciConfig.DockerBuildConfig.DockerBuildOptions,
},
CiBuildConfig: ciConfig.CiBuildConfig,
CheckoutPath: gitMaterial.CheckoutPath,
}

return dockerConfig, nil, http.StatusOK
Expand Down Expand Up @@ -1258,28 +1253,15 @@ func (handler CoreAppRestHandlerImpl) createDockerConfig(appId int, dockerConfig
}

//finding gitMaterial by appId and checkoutPath
gitMaterial, err := handler.materialRepository.FindByAppIdAndCheckoutPath(appId, dockerConfig.BuildConfig.GitCheckoutPath)
gitMaterial, err := handler.materialRepository.FindByAppIdAndCheckoutPath(appId, dockerConfig.CheckoutPath)
if err != nil {
handler.logger.Errorw("service err, FindByAppIdAndCheckoutPath in CreateDockerConfig", "err", err, "appId", appId)
return err, http.StatusInternalServerError
}

dockerBuildArgs := make(map[string]string)
if dockerConfig.BuildConfig.Args != nil {
dockerBuildArgs = dockerConfig.BuildConfig.Args
}
dockerBuildOptions := make(map[string]string)
if dockerConfig.BuildConfig.DockerBuildOptions != nil {
dockerBuildOptions = dockerConfig.BuildConfig.DockerBuildOptions
}
dockerBuildConfigRequest := &bean.DockerBuildConfig{
GitMaterialId: gitMaterial.Id,
DockerfilePath: dockerConfig.BuildConfig.DockerfileRelativePath,
Args: dockerBuildArgs,
DockerBuildOptions: dockerBuildOptions,
TargetPlatform: dockerConfig.BuildConfig.TargetPlatform,
}
createDockerConfigRequest.DockerBuildConfig = dockerBuildConfigRequest
ciBuildConfig := dockerConfig.CiBuildConfig
ciBuildConfig.GitMaterialId = gitMaterial.Id
createDockerConfigRequest.CiBuildConfig = ciBuildConfig

_, err = handler.pipelineBuilder.CreateCiPipeline(createDockerConfigRequest)
if err != nil {
Expand Down
54 changes: 54 additions & 0 deletions client/telemetry/TelemetryEventClientExtended.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import (
chartRepoRepository "github.com/devtron-labs/devtron/pkg/chartRepo/repository"
"github.com/devtron-labs/devtron/pkg/cluster"
moduleRepo "github.com/devtron-labs/devtron/pkg/module/repo"
"github.com/devtron-labs/devtron/pkg/pipeline"
"github.com/devtron-labs/devtron/pkg/pipeline/bean"
serverDataStore "github.com/devtron-labs/devtron/pkg/server/store"
"github.com/devtron-labs/devtron/pkg/sso"
"github.com/devtron-labs/devtron/pkg/user"
Expand Down Expand Up @@ -37,6 +39,7 @@ type TelemetryEventClientImplExtended struct {
materialRepository pipelineConfig.MaterialRepository
ciTemplateRepository pipelineConfig.CiTemplateRepository
chartRepository chartRepoRepository.ChartRepository
ciBuildConfigService pipeline.CiBuildConfigService
*TelemetryEventClientImpl
}

Expand Down Expand Up @@ -138,6 +141,15 @@ type TelemetryEventDto struct {
InstallingIntegrations []string `json:"installingIntegrations,omitempty"`
DevtronReleaseVersion string `json:"devtronReleaseVersion,omitempty"`
LastLoginTime time.Time `json:"LastLoginTime,omitempty"`
SelfDockerfileCount int `json:"selfDockerfileCount"`
ManagedDockerfileCount int `json:"managedDockerfileCount"`
BuildPackCount int `json:"buildPackCount"`
SelfDockerfileSuccessCount int `json:"selfDockerfileSuccessCount"`
SelfDockerfileFailureCount int `json:"selfDockerfileFailureCount"`
ManagedDockerfileSuccessCount int `json:"managedDockerfileSuccessCount"`
ManagedDockerfileFailureCount int `json:"managedDockerfileFailureCount"`
BuildPackSuccessCount int `json:"buildPackSuccessCount"`
BuildPackFailureCount int `json:"buildPackFailureCount"`
}

func (impl *TelemetryEventClientImplExtended) SummaryEventForTelemetry() {
Expand Down Expand Up @@ -259,6 +271,10 @@ func (impl *TelemetryEventClientImplExtended) SendSummaryEvent(eventType string)
return err
}

selfDockerfileCount, managedDockerfileCount, buildpackCount := impl.getCiBuildTypeData()

successCount, failureCount := impl.getCiBuildTypeVsStatusVsCount()

devtronVersion := util.GetDevtronVersion()
payload.ProdAppCount = prodApps
payload.NonProdAppCount = nonProdApps
Expand All @@ -268,6 +284,7 @@ func (impl *TelemetryEventClientImplExtended) SendSummaryEvent(eventType string)
payload.EnvironmentCount = len(environments)
payload.ClusterCount = len(clusters)
payload.CiCountPerDay = len(ciPipeline)

payload.CdCountPerDay = len(cdPipeline)
payload.GitAccountsCount = len(gitAccounts)
payload.GitOpsCount = len(gitOps)
Expand All @@ -291,6 +308,18 @@ func (impl *TelemetryEventClientImplExtended) SendSummaryEvent(eventType string)
payload.LastLoginTime = loginTime
}

payload.SelfDockerfileCount = selfDockerfileCount
payload.SelfDockerfileSuccessCount = successCount[bean.SELF_DOCKERFILE_BUILD_TYPE]
payload.SelfDockerfileFailureCount = failureCount[bean.SELF_DOCKERFILE_BUILD_TYPE]

payload.ManagedDockerfileCount = managedDockerfileCount
payload.ManagedDockerfileSuccessCount = successCount[bean.MANAGED_DOCKERFILE_BUILD_TYPE]
payload.ManagedDockerfileFailureCount = failureCount[bean.MANAGED_DOCKERFILE_BUILD_TYPE]

payload.BuildPackCount = buildpackCount
payload.BuildPackSuccessCount = successCount[bean.BUILDPACK_BUILD_TYPE]
payload.BuildPackFailureCount = failureCount[bean.BUILDPACK_BUILD_TYPE]

reqBody, err := json.Marshal(payload)
if err != nil {
impl.logger.Errorw("SummaryEventForTelemetry, payload marshal error", "error", err)
Expand All @@ -310,3 +339,28 @@ func (impl *TelemetryEventClientImplExtended) SendSummaryEvent(eventType string)
}
return nil
}

func (impl *TelemetryEventClientImplExtended) getCiBuildTypeData() (int, int, int) {
countByBuildType := impl.ciBuildConfigService.GetCountByBuildType()
return countByBuildType[bean.SELF_DOCKERFILE_BUILD_TYPE], countByBuildType[bean.MANAGED_DOCKERFILE_BUILD_TYPE], countByBuildType[bean.BUILDPACK_BUILD_TYPE]
}

func (impl *TelemetryEventClientImplExtended) getCiBuildTypeVsStatusVsCount() (successCount map[bean.CiBuildType]int, failureCount map[bean.CiBuildType]int) {
successCount = make(map[bean.CiBuildType]int)
failureCount = make(map[bean.CiBuildType]int)
buildTypeAndStatusVsCount := impl.ciWorkflowRepository.FindBuildTypeAndStatusDataOfLast1Day()
for _, buildTypeCount := range buildTypeAndStatusVsCount {
if buildTypeCount == nil {
continue
}
if buildTypeCount.Type == "" {
buildTypeCount.Type = string(bean.SELF_DOCKERFILE_BUILD_TYPE)
}
if buildTypeCount.Status == "Succeeded" {
successCount[bean.CiBuildType(buildTypeCount.Type)] = buildTypeCount.Count
} else {
failureCount[bean.CiBuildType(buildTypeCount.Type)] = buildTypeCount.Count
}
}
return successCount, failureCount
}
120 changes: 120 additions & 0 deletions internal/sql/repository/mocks/CiTemplateOverrideRepository.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading