Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion bun.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
"clients/typescript": {
"name": "@metorial-services/forge-client",
"version": "1.0.6",
"version": "1.0.0",
"dependencies": {
"@lowerdeck/rpc-client": "^1.0.2",
},
Expand All @@ -33,6 +33,7 @@
"@aws-sdk/client-iam": "^3.957.0",
"@lowerdeck/api-mux": "^1.0.1",
"@lowerdeck/cron": "^1.0.4",
"@lowerdeck/delay": "^1.0.4",
"@lowerdeck/encryption": "^1.0.6",
"@lowerdeck/env": "^1.0.4",
"@lowerdeck/error": "^1.0.8",
Expand Down
1 change: 1 addition & 0 deletions service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"@aws-sdk/client-iam": "^3.957.0",
"@lowerdeck/api-mux": "^1.0.1",
"@lowerdeck/cron": "^1.0.4",
"@lowerdeck/delay": "^1.0.4",
"@lowerdeck/encryption": "^1.0.6",
"@lowerdeck/env": "^1.0.4",
"@lowerdeck/error": "^1.0.8",
Expand Down
10 changes: 3 additions & 7 deletions service/src/providers/aws-codebuild/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ let startBuildQueueProcessor = startAwsCodeBuildQueue.process(async data => {
environmentVariablesOverride: [
...Object.entries({
...envVars,

WORKFLOW_RUN_ID: ctx.run.id,
WORKFLOW_VERSION_ID: version.id,
RUNTIME: '[email protected]'
Expand Down Expand Up @@ -492,20 +491,17 @@ let buildEndedQueueProcessor = buildEndedQueue.process(async data => {

let ctx = await BuildContext.of(data.runId);

let failed = build.buildStatus != 'SUCCEEDED';

await db.workflowRunStep.updateMany({
where: { runOid: ctx.run.oid, status: 'running' },
data: { status: 'failed', endedAt: new Date() }
data: { status: failed ? 'failed' : 'succeeded', endedAt: new Date() }
});
await db.workflowRunStep.updateMany({
where: { runOid: ctx.run.oid, status: 'pending' },
data: { status: 'canceled' }
});

let hasFailedSteps = (await db.workflowRunStep.findFirst({
where: { runOid: ctx.run.oid, status: 'failed' }
}))!!;
let failed = hasFailedSteps || build.buildStatus != 'SUCCEEDED';

await db.workflowRun.updateMany({
where: { id: data.runId },
data: {
Expand Down
2 changes: 1 addition & 1 deletion service/src/services/workflowVersion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class workflowVersionServiceImpl {
steps: WorkflowVersionSteps[];
};
}) {
let identifier = generatePlainId(6);
let identifier = generatePlainId(12);

return await db.$transaction(async db => {
let version = await db.workflowVersion.create({
Expand Down
18 changes: 16 additions & 2 deletions service/src/storage.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
import { delay } from '@lowerdeck/delay';
import { ObjectStorageClient } from 'object-storage-client';
import { env } from './env';

export let storage = new ObjectStorageClient(env.storage.OBJECT_STORAGE_URL);

setTimeout(async () => {
let initBuckets = async () => {
await storage.upsertBucket(env.storage.LOG_BUCKET_NAME);
await storage.upsertBucket(env.storage.ARTIFACT_BUCKET_NAME);
}, 5000);
};

async () => {
while (true) {
try {
await initBuckets();
return;
} catch (err) {
console.error('Error initializing storage buckets, retrying...');
}

await delay(5000);
}
};