Skip to content

Commit 18cc048

Browse files
feat: add deploy reconcile cron job and related logic (#1239)
Co-authored-by: ruibo.qin <qinphantom@gmail.com>
1 parent 5c2472d commit 18cc048

40 files changed

Lines changed: 2110 additions & 468 deletions

_mocks/opencsg.com/csghub-server/builder/deploy/imagerunner/mock_Runner.go

Lines changed: 276 additions & 217 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_mocks/opencsg.com/csghub-server/builder/deploy/mock_Deployer.go

Lines changed: 398 additions & 219 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_mocks/opencsg.com/csghub-server/builder/store/database/mock_ArgoWorkFlowStore.go

Lines changed: 63 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_mocks/opencsg.com/csghub-server/builder/store/database/mock_DeployTaskStore.go

Lines changed: 61 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/workflow/activity/activities_ce.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
package activity
44

55
import (
6+
"log/slog"
7+
68
aigatewaytask "opencsg.com/csghub-server/aigateway/task"
9+
"opencsg.com/csghub-server/builder/deploy"
10+
"opencsg.com/csghub-server/builder/deploy/common"
711
"opencsg.com/csghub-server/builder/git/gitserver"
812
"opencsg.com/csghub-server/builder/store/database"
913
"opencsg.com/csghub-server/common/config"
@@ -13,6 +17,8 @@ import (
1317

1418
type stores struct {
1519
syncClientSetting database.SyncClientSettingStore
20+
deployTask database.DeployTaskStore
21+
argoWorkFlow database.ArgoWorkFlowStore
1622
}
1723

1824
type Activities struct {
@@ -26,6 +32,10 @@ type Activities struct {
2632
industryTag component.IndustryTagComponent
2733
asyncGenerationService aigatewaytask.AsyncGenerationService
2834
stores stores
35+
36+
// Deploy reconcile
37+
deployer deploy.Deployer
38+
deployConfig common.DeployConfig
2939
}
3040

3141
func NewActivities(
@@ -42,6 +52,8 @@ func NewActivities(
4252
) *Activities {
4353
stores := stores{
4454
syncClientSetting: syncClientSetting,
55+
deployTask: database.NewDeployTaskStore(),
56+
argoWorkFlow: database.NewArgoWorkFlowStore(),
4557
}
4658

4759
return &Activities{
@@ -55,5 +67,17 @@ func NewActivities(
5567
repoComponent: repoComponent,
5668
industryTag: industryTag,
5769
asyncGenerationService: asyncGenerationService,
70+
deployer: newDeployerForReconcile(cfg),
71+
deployConfig: common.BuildDeployConfig(cfg),
72+
}
73+
}
74+
75+
func newDeployerForReconcile(cfg *config.Config) deploy.Deployer {
76+
dc := common.BuildDeployConfig(cfg)
77+
d, err := deploy.NewDeployerForReconcile(cfg, dc)
78+
if err != nil {
79+
slog.Error("failed to create deployer for reconcile", "error", err)
80+
return nil
5881
}
82+
return d
5983
}

api/workflow/activity/deploy_activity.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,7 @@ func (a *DeployActivity) updateDeployTaskStatus(task *database.DeployTask, servi
340340
task.Status = DeployStatusDeploying
341341
task.Message = "deploy in progress"
342342
task.Deploy.Status = common.Deploying
343+
task.Deploy.StatusUpdateAt = time.Now()
343344

344345
if len(serviceName) > 0 {
345346
task.Deploy.SvcName = serviceName
@@ -393,6 +394,7 @@ func (a *DeployActivity) handleRepositoryNotFound(task *database.DeployTask) err
393394
task.Status = common.TaskStatusBuildFailed
394395
task.Message = "repository not found, please check the repository path"
395396
task.Deploy.Status = common.BuildFailed
397+
task.Deploy.StatusUpdateAt = time.Now()
396398
if err := a.updateTaskStatus(task); err != nil {
397399
return fmt.Errorf("handleRepositoryNotFound failed to update deploy task %d status: %w", task.ID, err)
398400
}

0 commit comments

Comments
 (0)