From 8ee02fff5b4ac4250fe1241d7ec7985ea5d55280 Mon Sep 17 00:00:00 2001 From: dunemask Date: Tue, 15 Aug 2023 13:18:05 +0000 Subject: [PATCH] Initial loading of AutoPipeline (#6) Co-authored-by: Dunemask Reviewed-on: https://gitea.dunemask.net/elysium/qualiteer/pulls/6 --- .../rabbit/workers/TestResultsWorker.js | 21 ++++++++++++++++++- lib/server/routes/catalog-route.js | 1 - 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/server/rabbit/workers/TestResultsWorker.js b/lib/server/rabbit/workers/TestResultsWorker.js index b26805d..bb7e451 100644 --- a/lib/server/rabbit/workers/TestResultsWorker.js +++ b/lib/server/rabbit/workers/TestResultsWorker.js @@ -1,8 +1,10 @@ // Imports import { Worker } from "rabbiteer"; import { VERB } from "../../util/logging.js"; +import { getPipelineMappings } from "../../database/queries/catalog.js"; import { insertTestResult } from "../../database/queries/results.js"; import evt from "../../../common/sockets/events.js"; +import { asTree, asBranches, as1d } from "../../../../src/util/pipelines.js"; // Class export default class TestResultsWorker extends Worker { constructor(skio) { @@ -26,8 +28,9 @@ export default class TestResultsWorker extends Worker { } */ async onMessage(testResult) { - const { pipeline } = testResult; + const { pipeline, autoPipeline } = testResult; await this.handleReporting(testResult); + if(autoPipeline) return this.autoPipeline(testResult); // Alter to start next test // TODO the delay should be autopopulated either by the suite, or filled in by the server if (pipeline) return this.pipelineTrigger(pipeline); @@ -38,6 +41,22 @@ export default class TestResultsWorker extends Worker { this.skio.to(dsi).emit(evt.PPL_TRG, pipeline); } + async autoPipeline(testResult){ + const {name} = testResult; + console.log(testResult); + const mappings = await getPipelineMappings(); + const primaries = mappings.filter((m) => + m.find((t) => t.name === name) + ); + const pipelineTree = asTree(primaries); + const pipelineReq = pipelineTree[name]; + delete pipelineReq.__testDelay; + for(var k of Object.keys(pipelineReq)){ + console.log("Would auto start: ", k); + } + + } + handleReporting(result) { VERB("TestResults", result.name); insertTestResult(result); diff --git a/lib/server/routes/catalog-route.js b/lib/server/routes/catalog-route.js index 3f6147d..032fd71 100644 --- a/lib/server/routes/catalog-route.js +++ b/lib/server/routes/catalog-route.js @@ -3,7 +3,6 @@ import { getTests, getPipelineMappings, upsertTest, - truncateTests, removeDroppedTests, } from "../database/queries/catalog.js"; const router = Router();