Revamp Job flow
This commit is contained in:
parent
945afdfbbe
commit
4a0a4b29a5
86 changed files with 592 additions and 608 deletions
|
@ -1,99 +0,0 @@
|
|||
import pg from "../postgres.js";
|
||||
// Imports
|
||||
import {
|
||||
insertQuery,
|
||||
selectWhereAnyQuery,
|
||||
onConflictUpdate,
|
||||
} from "../pg-query.js";
|
||||
|
||||
import getFilteredTags from "../tags.js";
|
||||
import getDelay from "../delays.js";
|
||||
// Constants
|
||||
const table = "catalog";
|
||||
const PG_DISABLED = process.env.POSTGRES_DISABLED;
|
||||
import { testsMock, mappingsMock } from "../mocks/catalog-mock.js";
|
||||
// Queries
|
||||
|
||||
export const getTests = async () => {
|
||||
if (PG_DISABLED) return testsMock();
|
||||
const query = `SELECT * from ${table}`;
|
||||
return pg.query(query);
|
||||
};
|
||||
|
||||
export const getPipelineMappings = async () => {
|
||||
if (PG_DISABLED) return mappingsMock();
|
||||
const query = `SELECT * from ${table} WHERE pipeline`;
|
||||
const tests = await pg.query(query);
|
||||
const mappings = [];
|
||||
var newTrigger;
|
||||
for (var test of tests) {
|
||||
if (test.triggers) continue;
|
||||
const { name, delay: delayStr } = test;
|
||||
var triggerStack = [{ name, delay: getDelay(delayStr), delayStr }];
|
||||
newTrigger = { name, delayStr };
|
||||
while (
|
||||
(newTrigger = tests.find(
|
||||
(te) => te.triggers && te.triggers.includes(newTrigger.name)
|
||||
)) !== null
|
||||
) {
|
||||
if (!newTrigger) break;
|
||||
triggerStack.push({
|
||||
name: newTrigger.name,
|
||||
delay: getDelay(newTrigger.delay),
|
||||
delayStr: newTrigger.delay,
|
||||
});
|
||||
}
|
||||
mappings.push(triggerStack.reverse());
|
||||
}
|
||||
return mappings;
|
||||
};
|
||||
|
||||
export const getProjects = async () => {
|
||||
if (PG_DISABLED) {
|
||||
const tests = testsMock();
|
||||
}
|
||||
};
|
||||
|
||||
export const upsertTest = async (test) => {
|
||||
if (PG_DISABLED) return console.log("Would insert test", test);
|
||||
const {
|
||||
name,
|
||||
class: className,
|
||||
image,
|
||||
path,
|
||||
description,
|
||||
type,
|
||||
created,
|
||||
mergeRequest,
|
||||
tags,
|
||||
} = test;
|
||||
|
||||
const filteredTags = getFilteredTags(tags);
|
||||
|
||||
const env =
|
||||
filteredTags.ignore && filteredTags.env
|
||||
? filteredTags.env.filter((e) => !filteredTags.ignore.includes(e))
|
||||
: filteredTags.env;
|
||||
const catalogEntry = {
|
||||
name,
|
||||
class: className,
|
||||
image,
|
||||
path,
|
||||
description: description ? description : null,
|
||||
type,
|
||||
created,
|
||||
mr: mergeRequest,
|
||||
tags,
|
||||
crons: filteredTags.crons,
|
||||
env,
|
||||
regions: filteredTags.regions,
|
||||
triggers: filteredTags.triggers,
|
||||
pipeline: filteredTags.pipeline ? true : false,
|
||||
coverage: filteredTags.coverage,
|
||||
projects: filteredTags.projects,
|
||||
delay: filteredTags.delay ? filteredTags.delay[0] : null,
|
||||
};
|
||||
const query =
|
||||
insertQuery(table, catalogEntry) + onConflictUpdate(["name"], catalogEntry);
|
||||
return await pg.query(query);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue