UNPKG

gitlab-ci-local

Version:

Tired of pushing to test your .gitlab-ci.yml?

42 lines 5.68 kB
import { Utils } from "./utils.js"; export class Producers { static init(jobs, stages, job) { const producerSet = new Set(); if (job.needs && job.needs.length === 0) return []; if (!job.needs && !job.dependencies) { for (const jobName of Utils.getJobNamesFromPreviousStages(jobs, stages, job)) { producerSet.add(jobName); } } (job.dependencies ?? []).forEach(dependency => { const foundInNeeds = (job.needs ?? []).find(n => n.job === dependency); if (foundInNeeds) return; producerSet.add(dependency); }); (job.needs ?? []).forEach(need => { if (!need.artifacts) return; if (need.pipeline) return; if (need.project) return; producerSet.add(need.job); }); const producers = []; for (const potential of jobs) { if (potential.artifacts == null) continue; if (potential.when == "never") continue; if (!producerSet.has(potential.name) && !producerSet.has(potential.baseName)) continue; producers.push(potential); } return producers.map(producer => { return { name: producer.name, dotenv: producer?.artifacts?.reports?.dotenv ?? null }; }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJvZHVjZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFHakMsTUFBTSxPQUFPLFNBQVM7SUFFbEIsTUFBTSxDQUFDLElBQUksQ0FBRSxJQUF3QixFQUFFLE1BQXlCLEVBQUUsR0FBUTtRQUN0RSxNQUFNLFdBQVcsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUzQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0UsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0wsQ0FBQztRQUNELENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDMUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDdkUsSUFBSSxZQUFZO2dCQUFFLE9BQU87WUFDekIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFDNUIsSUFBSSxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQzFCLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTztZQUN6QixXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUU1QixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksU0FBUyxDQUFDLFNBQVMsSUFBSSxJQUFJO2dCQUFFLFNBQVM7WUFDMUMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLE9BQU87Z0JBQUUsU0FBUztZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7Z0JBQUUsU0FBUztZQUN2RixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUIsT0FBTyxFQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksSUFBSSxFQUFDLENBQUM7UUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYi5qc1wiO1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjZXJzIHtcblxuICAgIHN0YXRpYyBpbml0IChqb2JzOiBSZWFkb25seUFycmF5PEpvYj4sIHN0YWdlczogcmVhZG9ubHkgc3RyaW5nW10sIGpvYjogSm9iKSB7XG4gICAgICAgIGNvbnN0IHByb2R1Y2VyU2V0OiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICAgICAgICBpZiAoam9iLm5lZWRzICYmIGpvYi5uZWVkcy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcbiAgICAgICAgaWYgKCFqb2IubmVlZHMgJiYgIWpvYi5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgam9iTmFtZSBvZiBVdGlscy5nZXRKb2JOYW1lc0Zyb21QcmV2aW91c1N0YWdlcyhqb2JzLCBzdGFnZXMsIGpvYikpIHtcbiAgICAgICAgICAgICAgICBwcm9kdWNlclNldC5hZGQoam9iTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgKGpvYi5kZXBlbmRlbmNpZXMgPz8gW10pLmZvckVhY2goZGVwZW5kZW5jeSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZEluTmVlZHMgPSAoam9iLm5lZWRzID8/IFtdKS5maW5kKG4gPT4gbi5qb2IgPT09IGRlcGVuZGVuY3kpO1xuICAgICAgICAgICAgaWYgKGZvdW5kSW5OZWVkcykgcmV0dXJuO1xuICAgICAgICAgICAgcHJvZHVjZXJTZXQuYWRkKGRlcGVuZGVuY3kpO1xuICAgICAgICB9KTtcbiAgICAgICAgKGpvYi5uZWVkcyA/PyBbXSkuZm9yRWFjaChuZWVkID0+IHtcbiAgICAgICAgICAgIGlmICghbmVlZC5hcnRpZmFjdHMpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChuZWVkLnBpcGVsaW5lKSByZXR1cm47XG4gICAgICAgICAgICBpZiAobmVlZC5wcm9qZWN0KSByZXR1cm47XG4gICAgICAgICAgICBwcm9kdWNlclNldC5hZGQobmVlZC5qb2IpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwcm9kdWNlcnM6IEpvYltdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBwb3RlbnRpYWwgb2Ygam9icykge1xuICAgICAgICAgICAgaWYgKHBvdGVudGlhbC5hcnRpZmFjdHMgPT0gbnVsbCkgY29udGludWU7XG4gICAgICAgICAgICBpZiAocG90ZW50aWFsLndoZW4gPT0gXCJuZXZlclwiKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICghcHJvZHVjZXJTZXQuaGFzKHBvdGVudGlhbC5uYW1lKSAmJiAhcHJvZHVjZXJTZXQuaGFzKHBvdGVudGlhbC5iYXNlTmFtZSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcHJvZHVjZXJzLnB1c2gocG90ZW50aWFsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvZHVjZXJzLm1hcChwcm9kdWNlciA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge25hbWU6IHByb2R1Y2VyLm5hbWUsIGRvdGVudjogcHJvZHVjZXI/LmFydGlmYWN0cz8ucmVwb3J0cz8uZG90ZW52ID8/IG51bGx9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbn1cbiJdfQ==