Skip to content

Commit 2c756ca

Browse files
committed
Fix migration and tests
1 parent 1e6c7cb commit 2c756ca

File tree

7 files changed

+36
-33
lines changed

7 files changed

+36
-33
lines changed

ent/migrate/migrations/20250617210240_add_deployment_build_fields.sql

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,12 @@
11
-- +goose Up
2-
-- modify "deployments" table
3-
DO $$
4-
BEGIN
5-
-- Add columns if they don't exist
6-
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'deployments' AND column_name = 'builder') THEN
7-
ALTER TABLE "deployments" ADD COLUMN "builder" character varying;
8-
END IF;
9-
10-
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'deployments' AND column_name = 'railpack_builder_install_command') THEN
11-
ALTER TABLE "deployments" ADD COLUMN "railpack_builder_install_command" character varying;
12-
END IF;
13-
14-
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'deployments' AND column_name = 'railpack_builder_build_command') THEN
15-
ALTER TABLE "deployments" ADD COLUMN "railpack_builder_build_command" character varying;
16-
END IF;
17-
18-
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'deployments' AND column_name = 'run_command') THEN
19-
ALTER TABLE "deployments" ADD COLUMN "run_command" character varying;
20-
END IF;
21-
22-
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'deployments' AND column_name = 'docker_builder_dockerfile_path') THEN
23-
ALTER TABLE "deployments" ADD COLUMN "docker_builder_dockerfile_path" character varying;
24-
END IF;
25-
26-
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'deployments' AND column_name = 'docker_builder_build_context') THEN
27-
ALTER TABLE "deployments" ADD COLUMN "docker_builder_build_context" character varying;
28-
END IF;
29-
END $$;
2+
-- modify "deployments" table - add columns if they don't exist
3+
ALTER TABLE "deployments"
4+
ADD COLUMN IF NOT EXISTS "builder" character varying,
5+
ADD COLUMN IF NOT EXISTS "railpack_builder_install_command" character varying,
6+
ADD COLUMN IF NOT EXISTS "railpack_builder_build_command" character varying,
7+
ADD COLUMN IF NOT EXISTS "run_command" character varying,
8+
ADD COLUMN IF NOT EXISTS "docker_builder_dockerfile_path" character varying,
9+
ADD COLUMN IF NOT EXISTS "docker_builder_build_context" character varying;
3010

3111
-- Populate the new columns from service_configs
3212
UPDATE deployments

ent/migrate/migrations/atlas.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
h1:yHgLWdH1ccrRiflipG9zaNMgWDNLr6gg06QCfOwQEjY=
1+
h1:zNZ3Hsc2yTEUAaU/YHEnyU+Y2trrQPHr1SDCPuF+K30=
22
20250519010757_initial_migration.sql h1:94lMwKemoNX/ichD+2Vzb7GmOHXVj4qVTfeBInQAe0g=
33
20250519163449_add_init_containers.sql h1:7bt+zCbtmlYr1QDztgka0R5wUxdjD7XYUkrhL9GYYIQ=
44
20250521202532_non_nillable_kubernetes_secret.sql h1:eDpMWyeBXh5cG4poavaUMeYs5QXddFBBIyYlxc+nq64=
@@ -11,4 +11,4 @@ h1:yHgLWdH1ccrRiflipG9zaNMgWDNLr6gg06QCfOwQEjY=
1111
20250606001240_add_template_resources.sql h1:PvZSYfmY1RmSq33tkvh741Se7eB1wJuYrZ0l5N3HYPc=
1212
20250610151603_drop_github_constraint.sql h1:SaohOh4UquASdmjFnu4jJjFUjiL3SIhdj3nTzPWQWJk=
1313
20250610220451_add_deployment_git_branch.sql h1:7BinbzWTC7PAWXx0gGqZxfe8ZjOvbA4KwoGZKySIZos=
14-
20250617210240_add_deployment_build_fields.sql h1:D4xipE5uYNEhWHCYq+ND4DnKErui/3r88TVVwnZFlN8=
14+
20250617210240_add_deployment_build_fields.sql h1:2B4157ovO0JjxNDnU+4RNwkQ/Jyz87yKVjL8/f85guE=

internal/repositories/deployment/mutations.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package deployment_repo
22

33
import (
44
"context"
5-
"fmt"
65
"strings"
76
"time"
87

@@ -36,7 +35,7 @@ func (self *DeploymentRepository) Create(ctx context.Context,
3635
WithServiceConfig().
3736
Only(ctx)
3837
if err != nil {
39-
return nil, fmt.Errorf("failed to fetch service for build config: %w", err)
38+
return nil, err
4039
}
4140

4241
c := db.Deployment.Create().

internal/repositories/deployment/mutations_test.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ func (suite *DeploymentMutationsSuite) SetupTest() {
6060
SetEnvironmentID(suite.testData.environment.ID).
6161
SetKubernetesSecret("test-service-secret").
6262
SaveX(suite.Ctx)
63+
suite.DB.ServiceConfig.Create().
64+
SetBuilder(schema.ServiceBuilderDocker).
65+
SetServiceID(suite.testData.service.ID).
66+
SetBuilder(schema.ServiceBuilderRailpack).
67+
SetIcon("database").SaveX(suite.Ctx)
6368

6469
suite.testData.deployment = suite.DB.Deployment.Create().
6570
SetServiceID(suite.testData.service.ID).
@@ -71,6 +76,7 @@ func (suite *DeploymentMutationsSuite) SetupTest() {
7176
Name: "Test User",
7277
AvatarURL: "https://github.com/test.png",
7378
}).
79+
SetBuilder(schema.ServiceBuilderDocker).
7480
SaveX(suite.Ctx)
7581
}
7682

@@ -155,7 +161,7 @@ func (suite *DeploymentMutationsSuite) TestCreate() {
155161
)
156162

157163
suite.Error(err)
158-
suite.ErrorContains(err, "constraint failed")
164+
suite.True(ent.IsNotFound(err), "Expected not found error for invalid service ID")
159165
})
160166

161167
suite.Run("Create Error when DB closed", func() {
@@ -295,6 +301,7 @@ func (suite *DeploymentMutationsSuite) TestMarkFailed() {
295301
SetServiceID(suite.testData.service.ID).
296302
SetStatus(schema.DeploymentStatusBuildSucceeded).
297303
SetSource(schema.DeploymentSourceManual).
304+
SetBuilder(schema.ServiceBuilderDocker).
298305
SetCommitAuthor(&schema.GitCommitter{
299306
Name: "Test User",
300307
AvatarURL: "https://github.com/test.png",
@@ -394,6 +401,7 @@ func (suite *DeploymentMutationsSuite) TestMarkCancelledExcept() {
394401
SetServiceID(suite.testData.service.ID).
395402
SetStatus(schema.DeploymentStatusBuildQueued).
396403
SetSource(schema.DeploymentSourceManual).
404+
SetBuilder(schema.ServiceBuilderDocker).
397405
SetCommitAuthor(&schema.GitCommitter{
398406
Name: "Test User",
399407
AvatarURL: "https://github.com/test.png",
@@ -404,6 +412,7 @@ func (suite *DeploymentMutationsSuite) TestMarkCancelledExcept() {
404412
SetServiceID(suite.testData.service.ID).
405413
SetStatus(schema.DeploymentStatusBuildRunning).
406414
SetSource(schema.DeploymentSourceManual).
415+
SetBuilder(schema.ServiceBuilderDocker).
407416
SetCommitAuthor(&schema.GitCommitter{
408417
Name: "Test User",
409418
AvatarURL: "https://github.com/test.png",
@@ -457,6 +466,7 @@ func (suite *DeploymentMutationsSuite) TestMarkAsCancelled() {
457466
SetServiceID(suite.testData.service.ID).
458467
SetStatus(schema.DeploymentStatusBuildQueued).
459468
SetSource(schema.DeploymentSourceManual).
469+
SetBuilder(schema.ServiceBuilderDocker).
460470
SetCommitAuthor(&schema.GitCommitter{
461471
Name: "Test User",
462472
AvatarURL: "https://github.com/test.png",
@@ -485,6 +495,7 @@ func (suite *DeploymentMutationsSuite) TestMarkAsCancelled() {
485495
SetServiceID(suite.testData.service.ID).
486496
SetStatus(schema.DeploymentStatusBuildRunning).
487497
SetSource(schema.DeploymentSourceManual).
498+
SetBuilder(schema.ServiceBuilderDocker).
488499
SetCommitAuthor(&schema.GitCommitter{
489500
Name: "Test User",
490501
AvatarURL: "https://github.com/test.png",

internal/repositories/deployment/queries_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ func (suite *DeploymentQueriesSuite) SetupTest() {
6767
SetCommitAuthor(committer).
6868
SetSource(schema.DeploymentSourceGit).
6969
SetStatus(schema.DeploymentStatusBuildQueued).
70+
SetBuilder(schema.ServiceBuilderDocker).
7071
SetQueuedAt(time.Now()).
7172
SaveX(suite.Ctx)
7273
}
@@ -229,6 +230,7 @@ func (suite *DeploymentQueriesSuite) TestGetLastSuccessfulDeployment() {
229230
SetCommitAuthor(&schema.GitCommitter{Name: "Test User"}).
230231
SetSource(schema.DeploymentSourceGit).
231232
SetStatus(schema.DeploymentStatusBuildSucceeded).
233+
SetBuilder(schema.ServiceBuilderDocker).
232234
SetQueuedAt(time.Now().Add(-2 * time.Hour)).
233235
SetStartedAt(time.Now().Add(-90 * time.Minute)).
234236
SetCompletedAt(time.Now().Add(-time.Hour)).
@@ -268,6 +270,7 @@ func (suite *DeploymentQueriesSuite) TestGetLastSuccessfulDeployment() {
268270
SetStatus(schema.DeploymentStatusBuildSucceeded).
269271
SetQueuedAt(time.Now().Add(-4 * time.Hour)).
270272
SetStartedAt(time.Now().Add(-210 * time.Minute)).
273+
SetBuilder(schema.ServiceBuilderDocker).
271274
SetCompletedAt(time.Now().Add(-3 * time.Hour)).
272275
SaveX(suite.Ctx)
273276

@@ -281,6 +284,7 @@ func (suite *DeploymentQueriesSuite) TestGetLastSuccessfulDeployment() {
281284
SetQueuedAt(time.Now().Add(-30 * time.Minute)).
282285
SetStartedAt(time.Now().Add(-25 * time.Minute)).
283286
SetCompletedAt(time.Now().Add(-20 * time.Minute)).
287+
SetBuilder(schema.ServiceBuilderDocker).
284288
SaveX(suite.Ctx)
285289

286290
deployment, err := suite.deploymentRepo.GetLastSuccessfulDeployment(suite.Ctx, suite.testService.ID)
@@ -312,6 +316,7 @@ func (suite *DeploymentQueriesSuite) TestGetJobsByStatus() {
312316
SetCommitAuthor(&schema.GitCommitter{Name: "Test User"}).
313317
SetSource(schema.DeploymentSourceGit).
314318
SetStatus(schema.DeploymentStatusBuildQueued).
319+
SetBuilder(schema.ServiceBuilderDocker).
315320
SetQueuedAt(time.Now()).
316321
SaveX(suite.Ctx)
317322

@@ -323,6 +328,7 @@ func (suite *DeploymentQueriesSuite) TestGetJobsByStatus() {
323328
SetSource(schema.DeploymentSourceGit).
324329
SetStatus(schema.DeploymentStatusBuildRunning).
325330
SetQueuedAt(time.Now().Add(-time.Minute)).
331+
SetBuilder(schema.ServiceBuilderDocker).
326332
SetStartedAt(time.Now()).
327333
SaveX(suite.Ctx)
328334

@@ -373,6 +379,7 @@ func (suite *DeploymentQueriesSuite) TestGetByServiceIDPaginated() {
373379
SetStatus(schema.DeploymentStatusBuildQueued).
374380
SetQueuedAt(baseTime.Add(time.Duration(i) * time.Hour)).
375381
SetCreatedAt(baseTime.Add(time.Duration(i) * time.Hour)).
382+
SetBuilder(schema.ServiceBuilderDocker).
376383
SaveX(suite.Ctx)
377384
}
378385

@@ -410,6 +417,7 @@ func (suite *DeploymentQueriesSuite) TestGetByServiceIDPaginated() {
410417
SetSource(schema.DeploymentSourceGit).
411418
SetStatus(schema.DeploymentStatusBuildSucceeded).
412419
SetQueuedAt(time.Now()).
420+
SetBuilder(schema.ServiceBuilderDocker).
413421
SaveX(suite.Ctx)
414422

415423
statusFilter := []schema.DeploymentStatus{schema.DeploymentStatusBuildQueued}

internal/repositories/service/mutations_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ func (suite *ServiceMutationsSuite) SetupTest() {
104104
SetSource(schema.DeploymentSourceManual).
105105
SetCommitSha("abc123").
106106
SetCommitMessage("Initial commit").
107+
SetBuilder(schema.ServiceBuilderRailpack).
107108
SetCommitAuthor(&schema.GitCommitter{
108109
Name: "Test User",
109110
AvatarURL: "https://github.com/test.png",

internal/repositories/service/queries_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ func (suite *ServiceQueriesSuite) SetupTest() {
143143
SetSource(schema.DeploymentSourceManual).
144144
SetCommitSha("abc123").
145145
SetCommitMessage("Initial commit").
146+
SetBuilder(schema.ServiceBuilderDocker).
146147
SetCommitAuthor(&schema.GitCommitter{
147148
Name: "Test User",
148149
AvatarURL: "https://github.com/test.png",
@@ -223,6 +224,7 @@ func (suite *ServiceQueriesSuite) TestGetByID() {
223224
SetServiceID(suite.testService.ID).
224225
SetStatus(schema.DeploymentStatusBuildFailed).
225226
SetSource(schema.DeploymentSourceManual).
227+
SetBuilder(schema.ServiceBuilderDocker).
226228
SetCommitSha("def456").
227229
SetCommitMessage("Failed commit").
228230
SetCommitAuthor(&schema.GitCommitter{
@@ -474,6 +476,7 @@ func (suite *ServiceQueriesSuite) TestGetByEnvironmentID() {
474476
SetServiceID(suite.testService.ID).
475477
SetStatus(schema.DeploymentStatusBuildRunning).
476478
SetSource(schema.DeploymentSourceManual).
479+
SetBuilder(schema.ServiceBuilderDocker).
477480
SetCommitSha("recent123").
478481
SetCommitMessage("Recent commit").
479482
SetCommitAuthor(&schema.GitCommitter{
@@ -728,6 +731,7 @@ func (suite *ServiceQueriesSuite) TestNeedsDeployment() {
728731
SetServiceID(suite.testService.ID).
729732
SetStatus(schema.DeploymentStatusBuildSucceeded).
730733
SetSource(schema.DeploymentSourceManual).
734+
SetBuilder(schema.ServiceBuilderDocker).
731735
SetCommitSha("nodef123").
732736
SetCommitMessage("No definition").
733737
SetCommitAuthor(&schema.GitCommitter{

0 commit comments

Comments
 (0)