UNPKG

@catladder/pipeline

Version:

Panter workflow for cloud CI/CD and DevOps

115 lines (114 loc) 4.59 kB
"use strict"; var __assign = this && this.__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __rest = this && this.__rest || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __read = this && this.__read || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = this && this.__spreadArray || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = this && this.__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createJobCacheFromConfig = exports.createJobCacheFromCacheConfigs = void 0; var path_1 = require("path"); var getAllCacheConfigsFromConfig_1 = require("./getAllCacheConfigsFromConfig"); var slugify_1 = __importDefault(require("slugify")); var createJobCacheFromCacheConfigs = function (context, caches) { if (caches.length === 0) return undefined; var simpleCacheDefs = caches.filter(function (c) { return !("key" in c); }); var advancedCacheDefs = caches.filter(function (c) { return "key" in c; }); // simple caches are merged together into one. This is because e.g. gitlab has a limit of 4 caches, see https://gitlab.com/gitlab-org/gitlab/-/issues/421962 var simpleCaches = simpleCacheDefs.length > 0 ? [{ key: context.name + "-default", policy: "pull-push", paths: simpleCacheDefs.flatMap(function (c) { return c.paths.map(function (p) { var _a; var baseDir = c.pathMode === "absolute" ? "" : (_a = c.baseDir) !== null && _a !== void 0 ? _a : context.build.dir; return (0, path_1.join)(baseDir, p); }); }) }] : []; var advancedCaches = advancedCacheDefs.map(function (_a) { var _b; var key = _a.key, paths = _a.paths, policy = _a.policy, scope = _a.scope, pathMode = _a.pathMode, buildDir = _a.buildDir, rest = __rest(_a, ["key", "paths", "policy", "scope", "pathMode", "buildDir"]); var baseDir = pathMode === "absolute" ? "" : buildDir !== null && buildDir !== void 0 ? buildDir : context.build.dir; var transformedKey = scope === "global" ? key : typeof key === "string" ? (scope === "buildDir" // really edge case... ? (0, slugify_1.default)(baseDir) : context.name) + "-" + key : __assign(__assign({}, key), { files: (_b = key.files) === null || _b === void 0 ? void 0 : _b.map(function (f) { return pathMode === "absolute" ? f : (0, path_1.join)(baseDir, f); }) }); return __assign({ key: transformedKey, policy: policy !== null && policy !== void 0 ? policy : "pull-push", paths: pathMode === "absolute" ? paths : paths === null || paths === void 0 ? void 0 : paths.map(function (p) { return (0, path_1.join)(baseDir, p); }) }, rest); }); return __spreadArray(__spreadArray([], __read(advancedCaches), false), __read(simpleCaches), false); }; exports.createJobCacheFromCacheConfigs = createJobCacheFromCacheConfigs; /** shortcut, used in some build types */ var createJobCacheFromConfig = function (context, configWithCache) { return (0, exports.createJobCacheFromCacheConfigs)(context, (0, getAllCacheConfigsFromConfig_1.getAllCacheConfigsFromConfig)(context, configWithCache)); }; exports.createJobCacheFromConfig = createJobCacheFromConfig;