diff --git a/.gitignore b/.gitignore index 7520387..7071fef 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ result -demo* \ No newline at end of file +demo* +kview \ No newline at end of file diff --git a/README.md b/README.md index 1be0e96..ee3c7dd 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ fluentci studio fluentci --help Usage: fluentci [pipeline] [jobs...] -Version: 0.14.5 +Version: 0.14.6 Description: diff --git a/src/consts.ts b/src/consts.ts index 51f02a9..9790f7f 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,6 +1,6 @@ import { dir } from "../deps.ts"; -export const VERSION = "0.14.5"; +export const VERSION = "0.14.6"; export const BASE_URL = "https://api.fluentci.io/v1"; diff --git a/src/server/executor.ts b/src/server/executor.ts index 69bc454..3675bd7 100644 --- a/src/server/executor.ts +++ b/src/server/executor.ts @@ -30,6 +30,7 @@ export default async function run(ctx: Context, actions: Action[], data: Run) { ...data, date: new Date().toISOString(), }); + let run = await ctx.kv.runs.get(data.id); for (const action of actions) { if (!action.enabled) { @@ -61,7 +62,7 @@ export default async function run(ctx: Context, actions: Action[], data: Run) { ); await ctx.kv.runs.save(data.projectId, { - ...data, + ...run!, jobs, }); @@ -107,7 +108,7 @@ export default async function run(ctx: Context, actions: Action[], data: Run) { })); const duration = dayjs().diff(runStart, "milliseconds"); await ctx.kv.runs.save(data.projectId, { - ...data, + ...run!, jobs, status: "FAILURE", duration, @@ -129,15 +130,14 @@ export default async function run(ctx: Context, actions: Action[], data: Run) { })); await ctx.kv.runs.save(data.projectId, { - ...data, + ...run!, jobs, - status: "SUCCESS", }); currentActionIndex += 1; } - const run = await ctx.kv.runs.get(data.id); + run = await ctx.kv.runs.get(data.id); const duration = dayjs().diff(runStart, "milliseconds"); await ctx.kv.runs.save(data.projectId, { ...run!, diff --git a/src/server/kv/runs.ts b/src/server/kv/runs.ts index 12dcbd4..24185e9 100644 --- a/src/server/kv/runs.ts +++ b/src/server/kv/runs.ts @@ -11,15 +11,21 @@ export async function save(project: string, data: Run) { } const run = await get(data.id); - await kv.set( - [ - FLUENTCI_KV_PREFIX, - "runs_by_date", - project, - dayjs(_.get(run, "date", data.date)).unix(), - ], - data - ); + + const { value: runDate } = await kv.get([ + FLUENTCI_KV_PREFIX, + "run_date", + data.id, + ]); + + if (runDate) { + await kv + .atomic() + .delete([FLUENTCI_KV_PREFIX, "runs_by_date", project, runDate]) + .delete([FLUENTCI_KV_PREFIX, "run_date", data.id]) + .commit(); + } + await kv .atomic() .set([FLUENTCI_KV_PREFIX, "runs", project, data.id], data) @@ -34,6 +40,19 @@ export async function save(project: string, data: Run) { ], data ) + .set( + [FLUENTCI_KV_PREFIX, "run_date", data.id], + dayjs(_.get(run, "date", data.date)).unix() + ) + .set( + [ + FLUENTCI_KV_PREFIX, + "runs_by_date", + project, + dayjs(_.get(run, "date", data.date)).unix(), + ], + data + ) .commit(); }