@catladder/cli 0.0.0-fix-workspace-cache-slots-c74ce9d1 → 0.0.0-fix-workspace-cache-slots-a2fc7a84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -5203,7 +5203,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5203
5203
|
};
|
|
5204
5204
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
5205
5205
|
exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
|
|
5206
|
-
const lodash_es_1 = __nccwpck_require__(50866);
|
|
5207
5206
|
const path_1 = __nccwpck_require__(16928);
|
|
5208
5207
|
const slugify_1 = __importDefault(__nccwpck_require__(21396));
|
|
5209
5208
|
/**
|
|
@@ -5212,24 +5211,37 @@ const slugify_1 = __importDefault(__nccwpck_require__(21396));
|
|
|
5212
5211
|
* exact-lockfile hit (github skips the ~0.6GB download on warm runs)
|
|
5213
5212
|
*/
|
|
5214
5213
|
const NODE_MODULES_CACHE_ID = "node-modules";
|
|
5215
|
-
|
|
5214
|
+
/**
|
|
5215
|
+
* the directory whose caches this job uses. Components that are part of
|
|
5216
|
+
* a shared workspace use the workspace root's caches: the install
|
|
5217
|
+
* operates on the whole workspace, and the workspace build job is the
|
|
5218
|
+
* one that populates the slots. Historically these component jobs
|
|
5219
|
+
* (verify, docker) read a separate key family that no job ever saved,
|
|
5220
|
+
* so they always started cold. Standalone components and the workspace
|
|
5221
|
+
* jobs themselves keep using their own build dir (unchanged keys).
|
|
5222
|
+
*/
|
|
5223
|
+
const getCacheBaseDir = async (context) => {
|
|
5224
|
+
var _a;
|
|
5216
5225
|
const packageManagerInfo = await context.packageManagerInfo;
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5222
|
-
//
|
|
5223
|
-
//
|
|
5224
|
-
//
|
|
5225
|
-
|
|
5226
|
-
(context.
|
|
5227
|
-
|
|
5228
|
-
|
|
5226
|
+
const componentIsInWorkspace = context.type === "component" &&
|
|
5227
|
+
"componentIsInWorkspace" in packageManagerInfo &&
|
|
5228
|
+
packageManagerInfo.componentIsInWorkspace;
|
|
5229
|
+
if (!componentIsInWorkspace)
|
|
5230
|
+
return context.build.dir;
|
|
5231
|
+
// the workspace build's dir when the component references one,
|
|
5232
|
+
// otherwise the repo root (packageManager.ts resolves workspace
|
|
5233
|
+
// membership against the root)
|
|
5234
|
+
return context.build.type === "fromWorkspace"
|
|
5235
|
+
? ((_a = context.build.workspaceBuildConfig.dir) !== null && _a !== void 0 ? _a : ".")
|
|
5236
|
+
: ".";
|
|
5237
|
+
};
|
|
5238
|
+
const getYarnCache = async (context, policy = "pull-push") => {
|
|
5239
|
+
const baseDir = await getCacheBaseDir(context);
|
|
5229
5240
|
return [
|
|
5230
5241
|
{
|
|
5231
|
-
scope:
|
|
5232
|
-
pathMode:
|
|
5242
|
+
scope: "buildDir",
|
|
5243
|
+
pathMode: "relative",
|
|
5244
|
+
buildDir: baseDir,
|
|
5233
5245
|
key: "yarn",
|
|
5234
5246
|
policy,
|
|
5235
5247
|
paths: [".yarn"],
|
|
@@ -5246,54 +5258,28 @@ const getYarnCache = async (context, policy = "pull-push") => {
|
|
|
5246
5258
|
};
|
|
5247
5259
|
exports.getYarnCache = getYarnCache;
|
|
5248
5260
|
const getNodeModulesCache = async (context, policy = "pull-push") => {
|
|
5249
|
-
var _a, _b;
|
|
5250
5261
|
const packageManagerInfo = await context.packageManagerInfo;
|
|
5251
|
-
|
|
5252
|
-
const
|
|
5253
|
-
(context.type === "component" &&
|
|
5254
|
-
"componentIsInWorkspace" in packageManagerInfo &&
|
|
5255
|
-
packageManagerInfo.componentIsInWorkspace);
|
|
5256
|
-
const { isClassic, workspaces } = packageManagerInfo;
|
|
5262
|
+
const baseDir = await getCacheBaseDir(context);
|
|
5263
|
+
const { isClassic } = packageManagerInfo;
|
|
5257
5264
|
// We intentionally do not use the contents of yarn.lock as a cache key, as yarn install should always guarantee that the files are updated, but it can still use part of the cache if not all packages are up-to-date.
|
|
5258
5265
|
// It would slow down all pipelines whenever one adds a new dependency as it will need to download all node_modules again.
|
|
5259
5266
|
return [
|
|
5260
5267
|
{
|
|
5261
5268
|
scope: "global",
|
|
5262
5269
|
pathMode: "absolute",
|
|
5263
|
-
//
|
|
5264
|
-
key:
|
|
5265
|
-
? "node-modules-workspace"
|
|
5266
|
-
: (0, slugify_1.default)(context.build.dir) + "-node-modules", // we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
|
|
5270
|
+
// we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
|
|
5271
|
+
key: (0, slugify_1.default)(baseDir) + "-node-modules",
|
|
5267
5272
|
// content-key for immutable-cache backends (github); the lockfile
|
|
5268
5273
|
// decides whether the cached content could have changed (absolute
|
|
5269
|
-
// pathMode: resolve the
|
|
5270
|
-
keyFiles: [
|
|
5271
|
-
componentIsInWorkspace
|
|
5272
|
-
? "yarn.lock"
|
|
5273
|
-
: (0, path_1.join)(context.build.dir, "yarn.lock"),
|
|
5274
|
-
],
|
|
5274
|
+
// pathMode: resolve the lockfile explicitly)
|
|
5275
|
+
keyFiles: [(0, path_1.join)(baseDir, "yarn.lock")],
|
|
5275
5276
|
// referenced by the yarn cache: an exact hit here makes the yarn
|
|
5276
5277
|
// zips unnecessary (see redundantOnExactHitOf on getYarnCache)
|
|
5277
5278
|
cacheId: NODE_MODULES_CACHE_ID,
|
|
5278
5279
|
policy,
|
|
5279
5280
|
paths: [
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
"node_modules",
|
|
5283
|
-
...((_a = workspaces.map((w) => (0, path_1.join)(w.location, "node_modules"))) !== null && _a !== void 0 ? _a : []),
|
|
5284
|
-
...(!isClassic
|
|
5285
|
-
? [
|
|
5286
|
-
".yarn/install-state.gz",
|
|
5287
|
-
...((_b = workspaces.map((w) => (0, path_1.join)(w.location, ".yarn/install-state.gz"))) !== null && _b !== void 0 ? _b : []),
|
|
5288
|
-
]
|
|
5289
|
-
: []),
|
|
5290
|
-
])
|
|
5291
|
-
: [
|
|
5292
|
-
(0, path_1.join)(context.build.dir, "node_modules"),
|
|
5293
|
-
...(!isClassic
|
|
5294
|
-
? [(0, path_1.join)(context.build.dir, ".yarn/install-state.gz")]
|
|
5295
|
-
: []),
|
|
5296
|
-
]),
|
|
5281
|
+
(0, path_1.join)(baseDir, "node_modules"),
|
|
5282
|
+
...(!isClassic ? [(0, path_1.join)(baseDir, ".yarn/install-state.gz")] : []),
|
|
5297
5283
|
],
|
|
5298
5284
|
},
|
|
5299
5285
|
];
|
|
@@ -11196,7 +11196,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
11196
11196
|
};
|
|
11197
11197
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
11198
11198
|
exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
|
|
11199
|
-
const lodash_es_1 = __nccwpck_require__(50866);
|
|
11200
11199
|
const path_1 = __nccwpck_require__(16928);
|
|
11201
11200
|
const slugify_1 = __importDefault(__nccwpck_require__(21396));
|
|
11202
11201
|
/**
|
|
@@ -11205,24 +11204,37 @@ const slugify_1 = __importDefault(__nccwpck_require__(21396));
|
|
|
11205
11204
|
* exact-lockfile hit (github skips the ~0.6GB download on warm runs)
|
|
11206
11205
|
*/
|
|
11207
11206
|
const NODE_MODULES_CACHE_ID = "node-modules";
|
|
11208
|
-
|
|
11207
|
+
/**
|
|
11208
|
+
* the directory whose caches this job uses. Components that are part of
|
|
11209
|
+
* a shared workspace use the workspace root's caches: the install
|
|
11210
|
+
* operates on the whole workspace, and the workspace build job is the
|
|
11211
|
+
* one that populates the slots. Historically these component jobs
|
|
11212
|
+
* (verify, docker) read a separate key family that no job ever saved,
|
|
11213
|
+
* so they always started cold. Standalone components and the workspace
|
|
11214
|
+
* jobs themselves keep using their own build dir (unchanged keys).
|
|
11215
|
+
*/
|
|
11216
|
+
const getCacheBaseDir = async (context) => {
|
|
11217
|
+
var _a;
|
|
11209
11218
|
const packageManagerInfo = await context.packageManagerInfo;
|
|
11210
|
-
|
|
11211
|
-
|
|
11212
|
-
|
|
11213
|
-
|
|
11214
|
-
|
|
11215
|
-
//
|
|
11216
|
-
//
|
|
11217
|
-
//
|
|
11218
|
-
|
|
11219
|
-
(context.
|
|
11220
|
-
|
|
11221
|
-
|
|
11219
|
+
const componentIsInWorkspace = context.type === "component" &&
|
|
11220
|
+
"componentIsInWorkspace" in packageManagerInfo &&
|
|
11221
|
+
packageManagerInfo.componentIsInWorkspace;
|
|
11222
|
+
if (!componentIsInWorkspace)
|
|
11223
|
+
return context.build.dir;
|
|
11224
|
+
// the workspace build's dir when the component references one,
|
|
11225
|
+
// otherwise the repo root (packageManager.ts resolves workspace
|
|
11226
|
+
// membership against the root)
|
|
11227
|
+
return context.build.type === "fromWorkspace"
|
|
11228
|
+
? ((_a = context.build.workspaceBuildConfig.dir) !== null && _a !== void 0 ? _a : ".")
|
|
11229
|
+
: ".";
|
|
11230
|
+
};
|
|
11231
|
+
const getYarnCache = async (context, policy = "pull-push") => {
|
|
11232
|
+
const baseDir = await getCacheBaseDir(context);
|
|
11222
11233
|
return [
|
|
11223
11234
|
{
|
|
11224
|
-
scope:
|
|
11225
|
-
pathMode:
|
|
11235
|
+
scope: "buildDir",
|
|
11236
|
+
pathMode: "relative",
|
|
11237
|
+
buildDir: baseDir,
|
|
11226
11238
|
key: "yarn",
|
|
11227
11239
|
policy,
|
|
11228
11240
|
paths: [".yarn"],
|
|
@@ -11239,54 +11251,28 @@ const getYarnCache = async (context, policy = "pull-push") => {
|
|
|
11239
11251
|
};
|
|
11240
11252
|
exports.getYarnCache = getYarnCache;
|
|
11241
11253
|
const getNodeModulesCache = async (context, policy = "pull-push") => {
|
|
11242
|
-
var _a, _b;
|
|
11243
11254
|
const packageManagerInfo = await context.packageManagerInfo;
|
|
11244
|
-
|
|
11245
|
-
const
|
|
11246
|
-
(context.type === "component" &&
|
|
11247
|
-
"componentIsInWorkspace" in packageManagerInfo &&
|
|
11248
|
-
packageManagerInfo.componentIsInWorkspace);
|
|
11249
|
-
const { isClassic, workspaces } = packageManagerInfo;
|
|
11255
|
+
const baseDir = await getCacheBaseDir(context);
|
|
11256
|
+
const { isClassic } = packageManagerInfo;
|
|
11250
11257
|
// We intentionally do not use the contents of yarn.lock as a cache key, as yarn install should always guarantee that the files are updated, but it can still use part of the cache if not all packages are up-to-date.
|
|
11251
11258
|
// It would slow down all pipelines whenever one adds a new dependency as it will need to download all node_modules again.
|
|
11252
11259
|
return [
|
|
11253
11260
|
{
|
|
11254
11261
|
scope: "global",
|
|
11255
11262
|
pathMode: "absolute",
|
|
11256
|
-
//
|
|
11257
|
-
key:
|
|
11258
|
-
? "node-modules-workspace"
|
|
11259
|
-
: (0, slugify_1.default)(context.build.dir) + "-node-modules", // we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
|
|
11263
|
+
// we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
|
|
11264
|
+
key: (0, slugify_1.default)(baseDir) + "-node-modules",
|
|
11260
11265
|
// content-key for immutable-cache backends (github); the lockfile
|
|
11261
11266
|
// decides whether the cached content could have changed (absolute
|
|
11262
|
-
// pathMode: resolve the
|
|
11263
|
-
keyFiles: [
|
|
11264
|
-
componentIsInWorkspace
|
|
11265
|
-
? "yarn.lock"
|
|
11266
|
-
: (0, path_1.join)(context.build.dir, "yarn.lock"),
|
|
11267
|
-
],
|
|
11267
|
+
// pathMode: resolve the lockfile explicitly)
|
|
11268
|
+
keyFiles: [(0, path_1.join)(baseDir, "yarn.lock")],
|
|
11268
11269
|
// referenced by the yarn cache: an exact hit here makes the yarn
|
|
11269
11270
|
// zips unnecessary (see redundantOnExactHitOf on getYarnCache)
|
|
11270
11271
|
cacheId: NODE_MODULES_CACHE_ID,
|
|
11271
11272
|
policy,
|
|
11272
11273
|
paths: [
|
|
11273
|
-
|
|
11274
|
-
|
|
11275
|
-
"node_modules",
|
|
11276
|
-
...((_a = workspaces.map((w) => (0, path_1.join)(w.location, "node_modules"))) !== null && _a !== void 0 ? _a : []),
|
|
11277
|
-
...(!isClassic
|
|
11278
|
-
? [
|
|
11279
|
-
".yarn/install-state.gz",
|
|
11280
|
-
...((_b = workspaces.map((w) => (0, path_1.join)(w.location, ".yarn/install-state.gz"))) !== null && _b !== void 0 ? _b : []),
|
|
11281
|
-
]
|
|
11282
|
-
: []),
|
|
11283
|
-
])
|
|
11284
|
-
: [
|
|
11285
|
-
(0, path_1.join)(context.build.dir, "node_modules"),
|
|
11286
|
-
...(!isClassic
|
|
11287
|
-
? [(0, path_1.join)(context.build.dir, ".yarn/install-state.gz")]
|
|
11288
|
-
: []),
|
|
11289
|
-
]),
|
|
11274
|
+
(0, path_1.join)(baseDir, "node_modules"),
|
|
11275
|
+
...(!isClassic ? [(0, path_1.join)(baseDir, ".yarn/install-state.gz")] : []),
|
|
11290
11276
|
],
|
|
11291
11277
|
},
|
|
11292
11278
|
];
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.getNodeCache = exports.getNodeModulesCache = exports.getYarnCache = void 0;
|
|
7
|
-
const lodash_es_1 = require("lodash-es");
|
|
8
7
|
const path_1 = require("path");
|
|
9
8
|
const slugify_1 = __importDefault(require("slugify"));
|
|
10
9
|
/**
|
|
@@ -13,24 +12,37 @@ const slugify_1 = __importDefault(require("slugify"));
|
|
|
13
12
|
* exact-lockfile hit (github skips the ~0.6GB download on warm runs)
|
|
14
13
|
*/
|
|
15
14
|
const NODE_MODULES_CACHE_ID = "node-modules";
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* the directory whose caches this job uses. Components that are part of
|
|
17
|
+
* a shared workspace use the workspace root's caches: the install
|
|
18
|
+
* operates on the whole workspace, and the workspace build job is the
|
|
19
|
+
* one that populates the slots. Historically these component jobs
|
|
20
|
+
* (verify, docker) read a separate key family that no job ever saved,
|
|
21
|
+
* so they always started cold. Standalone components and the workspace
|
|
22
|
+
* jobs themselves keep using their own build dir (unchanged keys).
|
|
23
|
+
*/
|
|
24
|
+
const getCacheBaseDir = async (context) => {
|
|
25
|
+
var _a;
|
|
17
26
|
const packageManagerInfo = await context.packageManagerInfo;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
(context.
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
const componentIsInWorkspace = context.type === "component" &&
|
|
28
|
+
"componentIsInWorkspace" in packageManagerInfo &&
|
|
29
|
+
packageManagerInfo.componentIsInWorkspace;
|
|
30
|
+
if (!componentIsInWorkspace)
|
|
31
|
+
return context.build.dir;
|
|
32
|
+
// the workspace build's dir when the component references one,
|
|
33
|
+
// otherwise the repo root (packageManager.ts resolves workspace
|
|
34
|
+
// membership against the root)
|
|
35
|
+
return context.build.type === "fromWorkspace"
|
|
36
|
+
? ((_a = context.build.workspaceBuildConfig.dir) !== null && _a !== void 0 ? _a : ".")
|
|
37
|
+
: ".";
|
|
38
|
+
};
|
|
39
|
+
const getYarnCache = async (context, policy = "pull-push") => {
|
|
40
|
+
const baseDir = await getCacheBaseDir(context);
|
|
30
41
|
return [
|
|
31
42
|
{
|
|
32
|
-
scope:
|
|
33
|
-
pathMode:
|
|
43
|
+
scope: "buildDir",
|
|
44
|
+
pathMode: "relative",
|
|
45
|
+
buildDir: baseDir,
|
|
34
46
|
key: "yarn",
|
|
35
47
|
policy,
|
|
36
48
|
paths: [".yarn"],
|
|
@@ -47,54 +59,28 @@ const getYarnCache = async (context, policy = "pull-push") => {
|
|
|
47
59
|
};
|
|
48
60
|
exports.getYarnCache = getYarnCache;
|
|
49
61
|
const getNodeModulesCache = async (context, policy = "pull-push") => {
|
|
50
|
-
var _a, _b;
|
|
51
62
|
const packageManagerInfo = await context.packageManagerInfo;
|
|
52
|
-
|
|
53
|
-
const
|
|
54
|
-
(context.type === "component" &&
|
|
55
|
-
"componentIsInWorkspace" in packageManagerInfo &&
|
|
56
|
-
packageManagerInfo.componentIsInWorkspace);
|
|
57
|
-
const { isClassic, workspaces } = packageManagerInfo;
|
|
63
|
+
const baseDir = await getCacheBaseDir(context);
|
|
64
|
+
const { isClassic } = packageManagerInfo;
|
|
58
65
|
// We intentionally do not use the contents of yarn.lock as a cache key, as yarn install should always guarantee that the files are updated, but it can still use part of the cache if not all packages are up-to-date.
|
|
59
66
|
// It would slow down all pipelines whenever one adds a new dependency as it will need to download all node_modules again.
|
|
60
67
|
return [
|
|
61
68
|
{
|
|
62
69
|
scope: "global",
|
|
63
70
|
pathMode: "absolute",
|
|
64
|
-
//
|
|
65
|
-
key:
|
|
66
|
-
? "node-modules-workspace"
|
|
67
|
-
: (0, slugify_1.default)(context.build.dir) + "-node-modules", // we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
|
|
71
|
+
// we use the dirname, not the component name, because in certain cases we have two apps in the same directory and want to share the cache, e.g. when having storybook in the same package.json
|
|
72
|
+
key: (0, slugify_1.default)(baseDir) + "-node-modules",
|
|
68
73
|
// content-key for immutable-cache backends (github); the lockfile
|
|
69
74
|
// decides whether the cached content could have changed (absolute
|
|
70
|
-
// pathMode: resolve the
|
|
71
|
-
keyFiles: [
|
|
72
|
-
componentIsInWorkspace
|
|
73
|
-
? "yarn.lock"
|
|
74
|
-
: (0, path_1.join)(context.build.dir, "yarn.lock"),
|
|
75
|
-
],
|
|
75
|
+
// pathMode: resolve the lockfile explicitly)
|
|
76
|
+
keyFiles: [(0, path_1.join)(baseDir, "yarn.lock")],
|
|
76
77
|
// referenced by the yarn cache: an exact hit here makes the yarn
|
|
77
78
|
// zips unnecessary (see redundantOnExactHitOf on getYarnCache)
|
|
78
79
|
cacheId: NODE_MODULES_CACHE_ID,
|
|
79
80
|
policy,
|
|
80
81
|
paths: [
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"node_modules",
|
|
84
|
-
...((_a = workspaces.map((w) => (0, path_1.join)(w.location, "node_modules"))) !== null && _a !== void 0 ? _a : []),
|
|
85
|
-
...(!isClassic
|
|
86
|
-
? [
|
|
87
|
-
".yarn/install-state.gz",
|
|
88
|
-
...((_b = workspaces.map((w) => (0, path_1.join)(w.location, ".yarn/install-state.gz"))) !== null && _b !== void 0 ? _b : []),
|
|
89
|
-
]
|
|
90
|
-
: []),
|
|
91
|
-
])
|
|
92
|
-
: [
|
|
93
|
-
(0, path_1.join)(context.build.dir, "node_modules"),
|
|
94
|
-
...(!isClassic
|
|
95
|
-
? [(0, path_1.join)(context.build.dir, ".yarn/install-state.gz")]
|
|
96
|
-
: []),
|
|
97
|
-
]),
|
|
82
|
+
(0, path_1.join)(baseDir, "node_modules"),
|
|
83
|
+
...(!isClassic ? [(0, path_1.join)(baseDir, ".yarn/install-state.gz")] : []),
|
|
98
84
|
],
|
|
99
85
|
},
|
|
100
86
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/cache.ts"],"names":[],"mappings":";;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/cache.ts"],"names":[],"mappings":"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"}
|