Skip to content

Commit c26a01b

Browse files
committed
Merge branch 'main' into execscripts
2 parents 9e85d7b + 85ab9c2 commit c26a01b

File tree

48 files changed

+785
-886
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+785
-886
lines changed
Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Upload tests to Datadog
1+
name: Upload tests to datadog
22
if: always()
33
inputs:
44
api-key:
@@ -7,26 +7,8 @@ inputs:
77
runs:
88
using: "composite"
99
steps:
10-
- name: Set work dir
11-
shell: bash
12-
run: |
13-
WORK_DIR=${{ runner.temp }}/datadog-ci
14-
mkdir -p $WORK_DIR
15-
echo "WORK_DIR=$WORK_DIR" >> $GITHUB_ENV
16-
# The npm install was taking 30s to 1m, accounting for 20+% of the total
17-
# job time.
18-
- name: Cache datadog-ci
19-
uses: buildjet/cache@v3
20-
with:
21-
path: |
22-
${{ env.WORK_DIR }}
23-
key: datadog-ci-${{ runner.os }}
24-
restore-keys: |
25-
datadog-ci-${{ runner.os }}-
26-
datadog-ci-
2710
- shell: bash
2811
run: |
29-
cd ${{ env.WORK_DIR }}
3012
owner=${{ github.repository_owner }}
3113
echo "owner: $owner"
3214
if [[ $owner != "coder" ]]; then
@@ -38,8 +20,8 @@ runs:
3820
echo "No API key provided, skipping..."
3921
exit 0
4022
fi
41-
npm install @datadog/datadog-ci@2.10.0
42-
npm x -- datadog-ci junit upload --service coder ./gotests.xml \
23+
npm install -g @datadog/datadog-ci@2.10.0
24+
datadog-ci junit upload --service coder ./gotests.xml \
4325
--tags os:${{runner.os}} --tags runner_name:${{runner.name}}
4426
env:
4527
DATADOG_API_KEY: ${{ inputs.api-key }}

coderd/activitybump_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,11 @@ func TestWorkspaceActivityBump(t *testing.T) {
7777
dbBuild, err := db.GetWorkspaceBuildByID(ctx, workspace.LatestBuild.ID)
7878
require.NoError(t, err)
7979

80-
err = db.UpdateWorkspaceBuildByID(ctx, database.UpdateWorkspaceBuildByIDParams{
81-
ID: workspace.LatestBuild.ID,
82-
UpdatedAt: dbtime.Now(),
83-
ProvisionerState: dbBuild.ProvisionerState,
84-
Deadline: dbBuild.Deadline,
85-
MaxDeadline: dbtime.Now().Add(maxTTL),
80+
err = db.UpdateWorkspaceBuildDeadlineByID(ctx, database.UpdateWorkspaceBuildDeadlineByIDParams{
81+
ID: workspace.LatestBuild.ID,
82+
UpdatedAt: dbtime.Now(),
83+
Deadline: dbBuild.Deadline,
84+
MaxDeadline: dbtime.Now().Add(maxTTL),
8685
})
8786
require.NoError(t, err)
8887
}

coderd/coderdtest/coderdtest.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ func UpdateTemplateVersion(t *testing.T, client *codersdk.Client, organizationID
763763
func AwaitTemplateVersionJob(t *testing.T, client *codersdk.Client, version uuid.UUID) codersdk.TemplateVersion {
764764
t.Helper()
765765

766-
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
766+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
767767
defer cancel()
768768

769769
t.Logf("waiting for template version job %s", version)
@@ -772,7 +772,7 @@ func AwaitTemplateVersionJob(t *testing.T, client *codersdk.Client, version uuid
772772
var err error
773773
templateVersion, err = client.TemplateVersion(ctx, version)
774774
return assert.NoError(t, err) && templateVersion.Job.CompletedAt != nil
775-
}, testutil.WaitMedium, testutil.IntervalFast)
775+
}, testutil.WaitLong, testutil.IntervalMedium)
776776
t.Logf("got template version job %s", version)
777777
return templateVersion
778778
}
@@ -790,7 +790,7 @@ func AwaitWorkspaceBuildJob(t *testing.T, client *codersdk.Client, build uuid.UU
790790
var err error
791791
workspaceBuild, err = client.WorkspaceBuild(ctx, build)
792792
return assert.NoError(t, err) && workspaceBuild.Job.CompletedAt != nil
793-
}, testutil.WaitShort, testutil.IntervalFast)
793+
}, testutil.WaitMedium, testutil.IntervalMedium)
794794
t.Logf("got workspace build job %s", build)
795795
return workspaceBuild
796796
}
@@ -838,7 +838,7 @@ func AwaitWorkspaceAgents(t *testing.T, client *codersdk.Client, workspaceID uui
838838
resources = workspace.LatestBuild.Resources
839839

840840
return true
841-
}, testutil.WaitLong, testutil.IntervalFast)
841+
}, testutil.WaitLong, testutil.IntervalMedium)
842842
t.Logf("got workspace agents (workspace %s)", workspaceID)
843843
return resources
844844
}

coderd/database/dbauthz/dbauthz.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2698,7 +2698,15 @@ func (q *querier) UpdateWorkspaceAutostart(ctx context.Context, arg database.Upd
26982698
return update(q.log, q.auth, fetch, q.db.UpdateWorkspaceAutostart)(ctx, arg)
26992699
}
27002700

2701-
func (q *querier) UpdateWorkspaceBuildByID(ctx context.Context, arg database.UpdateWorkspaceBuildByIDParams) error {
2701+
// UpdateWorkspaceBuildCostByID is used by the provisioning system to update the cost of a workspace build.
2702+
func (q *querier) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
2703+
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceSystem); err != nil {
2704+
return err
2705+
}
2706+
return q.db.UpdateWorkspaceBuildCostByID(ctx, arg)
2707+
}
2708+
2709+
func (q *querier) UpdateWorkspaceBuildDeadlineByID(ctx context.Context, arg database.UpdateWorkspaceBuildDeadlineByIDParams) error {
27022710
build, err := q.db.GetWorkspaceBuildByID(ctx, arg.ID)
27032711
if err != nil {
27042712
return err
@@ -2708,20 +2716,19 @@ func (q *querier) UpdateWorkspaceBuildByID(ctx context.Context, arg database.Upd
27082716
if err != nil {
27092717
return err
27102718
}
2719+
27112720
err = q.authorizeContext(ctx, rbac.ActionUpdate, workspace.RBACObject())
27122721
if err != nil {
27132722
return err
27142723
}
2715-
2716-
return q.db.UpdateWorkspaceBuildByID(ctx, arg)
2724+
return q.db.UpdateWorkspaceBuildDeadlineByID(ctx, arg)
27172725
}
27182726

2719-
// UpdateWorkspaceBuildCostByID is used by the provisioning system to update the cost of a workspace build.
2720-
func (q *querier) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
2727+
func (q *querier) UpdateWorkspaceBuildProvisionerStateByID(ctx context.Context, arg database.UpdateWorkspaceBuildProvisionerStateByIDParams) error {
27212728
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceSystem); err != nil {
27222729
return err
27232730
}
2724-
return q.db.UpdateWorkspaceBuildCostByID(ctx, arg)
2731+
return q.db.UpdateWorkspaceBuildProvisionerStateByID(ctx, arg)
27252732
}
27262733

27272734
// Deprecated: Use SoftDeleteWorkspaceByID

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1232,14 +1232,13 @@ func (s *MethodTestSuite) TestWorkspace() {
12321232
ID: ws.ID,
12331233
}).Asserts(ws, rbac.ActionUpdate).Returns()
12341234
}))
1235-
s.Run("UpdateWorkspaceBuildByID", s.Subtest(func(db database.Store, check *expects) {
1235+
s.Run("UpdateWorkspaceBuildDeadlineByID", s.Subtest(func(db database.Store, check *expects) {
12361236
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
12371237
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
1238-
check.Args(database.UpdateWorkspaceBuildByIDParams{
1239-
ID: build.ID,
1240-
UpdatedAt: build.UpdatedAt,
1241-
Deadline: build.Deadline,
1242-
ProvisionerState: []byte{},
1238+
check.Args(database.UpdateWorkspaceBuildDeadlineByIDParams{
1239+
ID: build.ID,
1240+
UpdatedAt: build.UpdatedAt,
1241+
Deadline: build.Deadline,
12431242
}).Asserts(ws, rbac.ActionUpdate)
12441243
}))
12451244
s.Run("SoftDeleteWorkspaceByID", s.Subtest(func(db database.Store, check *expects) {
@@ -1378,6 +1377,14 @@ func (s *MethodTestSuite) TestSystemFunctions() {
13781377
DailyCost: 10,
13791378
}).Asserts(rbac.ResourceSystem, rbac.ActionUpdate)
13801379
}))
1380+
s.Run("UpdateWorkspaceBuildProvisionerStateByID", s.Subtest(func(db database.Store, check *expects) {
1381+
ws := dbgen.Workspace(s.T(), db, database.Workspace{})
1382+
build := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: ws.ID, JobID: uuid.New()})
1383+
check.Args(database.UpdateWorkspaceBuildProvisionerStateByIDParams{
1384+
ID: build.ID,
1385+
ProvisionerState: []byte("testing"),
1386+
}).Asserts(rbac.ResourceSystem, rbac.ActionUpdate)
1387+
}))
13811388
s.Run("UpsertLastUpdateCheck", s.Subtest(func(db database.Store, check *expects) {
13821389
check.Args("value").Asserts(rbac.ResourceSystem, rbac.ActionUpdate)
13831390
}))

coderd/database/dbfake/dbfake.go

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5935,7 +5935,7 @@ func (q *FakeQuerier) UpdateWorkspaceAutostart(_ context.Context, arg database.U
59355935
return sql.ErrNoRows
59365936
}
59375937

5938-
func (q *FakeQuerier) UpdateWorkspaceBuildByID(_ context.Context, arg database.UpdateWorkspaceBuildByIDParams) error {
5938+
func (q *FakeQuerier) UpdateWorkspaceBuildCostByID(_ context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
59395939
if err := validateDatabaseType(arg); err != nil {
59405940
return err
59415941
}
@@ -5947,32 +5947,55 @@ func (q *FakeQuerier) UpdateWorkspaceBuildByID(_ context.Context, arg database.U
59475947
if workspaceBuild.ID != arg.ID {
59485948
continue
59495949
}
5950-
workspaceBuild.UpdatedAt = arg.UpdatedAt
5951-
workspaceBuild.ProvisionerState = arg.ProvisionerState
5952-
workspaceBuild.Deadline = arg.Deadline
5953-
workspaceBuild.MaxDeadline = arg.MaxDeadline
5950+
workspaceBuild.DailyCost = arg.DailyCost
59545951
q.workspaceBuilds[index] = workspaceBuild
59555952
return nil
59565953
}
59575954
return sql.ErrNoRows
59585955
}
59595956

5960-
func (q *FakeQuerier) UpdateWorkspaceBuildCostByID(_ context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
5961-
if err := validateDatabaseType(arg); err != nil {
5957+
func (q *FakeQuerier) UpdateWorkspaceBuildDeadlineByID(_ context.Context, arg database.UpdateWorkspaceBuildDeadlineByIDParams) error {
5958+
err := validateDatabaseType(arg)
5959+
if err != nil {
59625960
return err
59635961
}
59645962

59655963
q.mutex.Lock()
59665964
defer q.mutex.Unlock()
59675965

5968-
for index, workspaceBuild := range q.workspaceBuilds {
5969-
if workspaceBuild.ID != arg.ID {
5966+
for idx, build := range q.workspaceBuilds {
5967+
if build.ID != arg.ID {
59705968
continue
59715969
}
5972-
workspaceBuild.DailyCost = arg.DailyCost
5973-
q.workspaceBuilds[index] = workspaceBuild
5970+
build.Deadline = arg.Deadline
5971+
build.MaxDeadline = arg.MaxDeadline
5972+
build.UpdatedAt = arg.UpdatedAt
5973+
q.workspaceBuilds[idx] = build
59745974
return nil
59755975
}
5976+
5977+
return sql.ErrNoRows
5978+
}
5979+
5980+
func (q *FakeQuerier) UpdateWorkspaceBuildProvisionerStateByID(_ context.Context, arg database.UpdateWorkspaceBuildProvisionerStateByIDParams) error {
5981+
err := validateDatabaseType(arg)
5982+
if err != nil {
5983+
return err
5984+
}
5985+
5986+
q.mutex.Lock()
5987+
defer q.mutex.Unlock()
5988+
5989+
for idx, build := range q.workspaceBuilds {
5990+
if build.ID != arg.ID {
5991+
continue
5992+
}
5993+
build.ProvisionerState = arg.ProvisionerState
5994+
build.UpdatedAt = arg.UpdatedAt
5995+
q.workspaceBuilds[idx] = build
5996+
return nil
5997+
}
5998+
59765999
return sql.ErrNoRows
59776000
}
59786001

coderd/database/dbmetrics/dbmetrics.go

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

coderd/database/dbmock/dbmock.go

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

coderd/database/querier.go

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)