@catladder/cli 0.0.0-next-d71e41ba → 0.0.0-next-b3e567e8
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.
- package/dist/apps/cli/src/scripts/generateCliSkillReference.js +3 -2
- package/dist/apps/cli/src/scripts/generateCliSkillReference.js.map +1 -1
- package/dist/bundles/catenv/index.js +546 -205
- package/dist/bundles/cli/index.js +546 -205
- package/dist/bundles/runner-images/docker-build/scripts/ensureNodeDockerfile +8 -1
- package/dist/bundles/runner-images/jobs-default/Dockerfile +4 -0
- package/dist/bundles/skills/catladder-builds/SKILL.md +19 -3
- package/dist/bundles/skills/catladder-builds/references/build-types.md +6 -4
- package/dist/bundles/skills/catladder-cli/references/commands.md +3 -2
- package/dist/bundles/skills/catladder-config/SKILL.md +5 -0
- package/dist/bundles/skills/catladder-deploys/SKILL.md +1 -1
- package/dist/bundles/skills/catladder-deploys/references/deploy-types.md +2 -2
- package/dist/bundles/skills/catladder-pipelines/SKILL.md +3 -1
- package/dist/packages/pipeline/src/build/base/createAppBuildJob.js +2 -2
- package/dist/packages/pipeline/src/build/base/createAppBuildJob.js.map +1 -1
- package/dist/packages/pipeline/src/build/index.d.ts +3 -3
- package/dist/packages/pipeline/src/build/index.js +16 -11
- package/dist/packages/pipeline/src/build/index.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/buildJob.js +49 -8
- package/dist/packages/pipeline/src/build/node/buildJob.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/cache.d.ts +5 -0
- package/dist/packages/pipeline/src/build/node/cache.js +58 -19
- package/dist/packages/pipeline/src/build/node/cache.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/meteor.js +9 -4
- package/dist/packages/pipeline/src/build/node/meteor.js.map +1 -1
- package/dist/packages/pipeline/src/build/node/packageManagerInstall.d.ts +14 -0
- package/dist/packages/pipeline/src/build/node/packageManagerInstall.js +145 -0
- package/dist/packages/pipeline/src/build/node/packageManagerInstall.js.map +1 -0
- package/dist/packages/pipeline/src/build/node/testJob.js +9 -11
- package/dist/packages/pipeline/src/build/node/testJob.js.map +1 -1
- package/dist/packages/pipeline/src/context/createComponentContext.js +3 -2
- package/dist/packages/pipeline/src/context/createComponentContext.js.map +1 -1
- package/dist/packages/pipeline/src/context/createWorkspaceContext.js +3 -2
- package/dist/packages/pipeline/src/context/createWorkspaceContext.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/custom/deployJob.js +7 -6
- package/dist/packages/pipeline/src/deploy/custom/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js +6 -4
- package/dist/packages/pipeline/src/deploy/pages/deployJob.js.map +1 -1
- package/dist/packages/pipeline/src/deploy/types/custom.d.ts +7 -1
- package/dist/packages/pipeline/src/deploy/types/pages.d.ts +7 -1
- package/dist/packages/pipeline/src/pipeline/detectPackageManager.d.ts +18 -0
- package/dist/packages/pipeline/src/pipeline/detectPackageManager.js +76 -0
- package/dist/packages/pipeline/src/pipeline/detectPackageManager.js.map +1 -0
- package/dist/packages/pipeline/src/pipeline/packageManager.d.ts +1 -1
- package/dist/packages/pipeline/src/pipeline/packageManager.js +43 -9
- package/dist/packages/pipeline/src/pipeline/packageManager.js.map +1 -1
- package/dist/packages/pipeline/src/pipeline/pnpm/pnpmUtils.d.ts +14 -0
- package/dist/packages/pipeline/src/pipeline/pnpm/pnpmUtils.js +93 -0
- package/dist/packages/pipeline/src/pipeline/pnpm/pnpmUtils.js.map +1 -0
- package/dist/packages/pipeline/src/types/config.d.ts +8 -1
- package/dist/packages/pipeline/src/types/context.d.ts +11 -3
- package/dist/packages/pipeline/src/types/context.js.map +1 -1
- package/dist/packages/pipeline/src/verify/createVerifyJobs.js +5 -5
- package/dist/packages/pipeline/src/verify/createVerifyJobs.js.map +1 -1
- package/dist/runner-images/docker-build/scripts/ensureNodeDockerfile +8 -1
- package/dist/runner-images/jobs-default/Dockerfile +4 -0
- package/dist/skills/catladder-builds/SKILL.md +19 -3
- package/dist/skills/catladder-builds/references/build-types.md +6 -4
- package/dist/skills/catladder-cli/references/commands.md +3 -2
- package/dist/skills/catladder-config/SKILL.md +5 -0
- package/dist/skills/catladder-deploys/SKILL.md +1 -1
- package/dist/skills/catladder-deploys/references/deploy-types.md +2 -2
- package/dist/skills/catladder-pipelines/SKILL.md +3 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/scripts/generateCliSkillReference.ts +3 -2
- package/dist/packages/pipeline/src/build/node/yarn.d.ts +0 -8
- package/dist/packages/pipeline/src/build/node/yarn.js +0 -78
- package/dist/packages/pipeline/src/build/node/yarn.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BashExpression } from "../../../../bash/src/index.js";
|
|
2
|
+
import type { ComponentContextWithBuild, PackageManagerInfoBase } from "../../types";
|
|
3
|
+
import { type Context } from "../../types";
|
|
4
|
+
/**
|
|
5
|
+
* default `audit` job command per package manager. Exhaustive on the
|
|
6
|
+
* package-manager type and throws for anything unsupported, so adding a
|
|
7
|
+
* new package manager surfaces every place that needs a command here.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getDefaultAuditCommand: (packageManagerInfo: PackageManagerInfoBase) => string;
|
|
10
|
+
export declare const ensureNodeVersion: (context: Context) => string[];
|
|
11
|
+
export declare const getPackageManagerInstall: (context: Context, options?: {
|
|
12
|
+
noCustomPostInstall: boolean;
|
|
13
|
+
}) => Promise<string[]>;
|
|
14
|
+
export declare const getDockerAppCopyAndBuildScript: (context: ComponentContextWithBuild) => Promise<BashExpression>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDockerAppCopyAndBuildScript = exports.getPackageManagerInstall = exports.ensureNodeVersion = exports.getDefaultAuditCommand = void 0;
|
|
4
|
+
const bash_1 = require("../../../../bash/src/index.js");
|
|
5
|
+
const utils_1 = require("../../utils");
|
|
6
|
+
const gitlab_1 = require("../../utils/gitlab");
|
|
7
|
+
const YARN_INSTALL_CLASSIC = `yarn install --frozen-lockfile`;
|
|
8
|
+
const YARN_BERRY_PROD_INSTALL = `yarn workspaces focus --production`;
|
|
9
|
+
// FIXME: check why and when rebuild is needed
|
|
10
|
+
const YARN_BERRY_PROD_REBUILD = `yarn rebuild`;
|
|
11
|
+
const getYarnInstallCommand = (packageManagerInfo) => {
|
|
12
|
+
if (packageManagerInfo.isClassic) {
|
|
13
|
+
return YARN_INSTALL_CLASSIC;
|
|
14
|
+
}
|
|
15
|
+
// inline builds make debugging easier as it prints it out in the logs, instead of writing it in temp files
|
|
16
|
+
return `yarn install --immutable --inline-builds`;
|
|
17
|
+
};
|
|
18
|
+
const isInWorkspace = (context, packageManagerInfo) => context.type === "workspace" ||
|
|
19
|
+
("componentIsInWorkspace" in packageManagerInfo &&
|
|
20
|
+
packageManagerInfo.componentIsInWorkspace);
|
|
21
|
+
/**
|
|
22
|
+
* make sure pnpm is available (job images ship it, older/custom images
|
|
23
|
+
* fall back to corepack or a pinned global install)
|
|
24
|
+
*/
|
|
25
|
+
const getEnsurePnpmCommand = (version) => `if ! command -v pnpm &> /dev/null; then corepack enable pnpm 2>/dev/null || npm install -g pnpm@${version}; fi`;
|
|
26
|
+
/**
|
|
27
|
+
* pnpm's store is global by default; point it at a project-local
|
|
28
|
+
* directory so CI can cache it (the pnpm equivalent of the `.yarn`
|
|
29
|
+
* zip cache). Passed as the --store-dir flag: pnpm 11 stopped reading
|
|
30
|
+
* the npm_config_store_dir env var (settings only come from
|
|
31
|
+
* pnpm-workspace.yaml / global config / CLI flags), the flag works on
|
|
32
|
+
* v10 and v11
|
|
33
|
+
*/
|
|
34
|
+
const getPnpmStoreDirExpression = (inWorkspace) => inWorkspace
|
|
35
|
+
? `"$(git rev-parse --show-toplevel 2>/dev/null || pwd)/.pnpm-store"`
|
|
36
|
+
: `"$PWD/.pnpm-store"`;
|
|
37
|
+
const getPnpmInstallCommands = (context, packageManagerInfo) => [
|
|
38
|
+
getEnsurePnpmCommand(packageManagerInfo.version),
|
|
39
|
+
`pnpm install --frozen-lockfile --store-dir ${getPnpmStoreDirExpression(isInWorkspace(context, packageManagerInfo))}`,
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* default `audit` job command per package manager. Exhaustive on the
|
|
43
|
+
* package-manager type and throws for anything unsupported, so adding a
|
|
44
|
+
* new package manager surfaces every place that needs a command here.
|
|
45
|
+
*/
|
|
46
|
+
const getDefaultAuditCommand = (packageManagerInfo) => {
|
|
47
|
+
switch (packageManagerInfo.type) {
|
|
48
|
+
case "pnpm":
|
|
49
|
+
return "pnpm audit --prod --audit-level critical";
|
|
50
|
+
case "yarn":
|
|
51
|
+
return packageManagerInfo.isClassic
|
|
52
|
+
? "yarn audit --level critical"
|
|
53
|
+
: "yarn npm audit --environment production --severity critical"; // yarn 2+
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`no audit command implemented for package manager "${packageManagerInfo.type}"`);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.getDefaultAuditCommand = getDefaultAuditCommand;
|
|
59
|
+
const ensureNodeVersion = (context) => (0, gitlab_1.collapseableSection)("nodeinstall", "Ensure node version")([
|
|
60
|
+
// github actions overrides HOME in container jobs, so also look
|
|
61
|
+
// for nvm where the catladder images install it (/root/.nvm)
|
|
62
|
+
'if [ -f "$HOME/.nvm/nvm.sh" ]; then source "$HOME/.nvm/nvm.sh"; elif [ -f /root/.nvm/nvm.sh ]; then export NVM_DIR=/root/.nvm; source /root/.nvm/nvm.sh; fi',
|
|
63
|
+
"if command -v nvm &> /dev/null && [ -f ./.nvmrc ]; then nvm install; fi",
|
|
64
|
+
]);
|
|
65
|
+
exports.ensureNodeVersion = ensureNodeVersion;
|
|
66
|
+
const getPackageManagerInstall = async (context, options) => {
|
|
67
|
+
const packageManagerInfo = await context.packageManagerInfo;
|
|
68
|
+
const postInstall = context.type !== "workspace" &&
|
|
69
|
+
context.build.type !== "disabled" &&
|
|
70
|
+
"postInstall" in context.build.config
|
|
71
|
+
? context.build.config.postInstall
|
|
72
|
+
: null;
|
|
73
|
+
const installSection = packageManagerInfo.type === "pnpm"
|
|
74
|
+
? (0, gitlab_1.collapseableSection)("pnpminstall", "pnpm install")(getPnpmInstallCommands(context, packageManagerInfo))
|
|
75
|
+
: (0, gitlab_1.collapseableSection)("yarninstall", "Yarn install")([getYarnInstallCommand(packageManagerInfo)]);
|
|
76
|
+
return [
|
|
77
|
+
...(0, exports.ensureNodeVersion)(context),
|
|
78
|
+
...installSection,
|
|
79
|
+
...(postInstall && !(options === null || options === void 0 ? void 0 : options.noCustomPostInstall)
|
|
80
|
+
? (0, gitlab_1.collapseableSection)("postinstall", "Custom post install")((0, utils_1.ensureArray)(postInstall))
|
|
81
|
+
: []),
|
|
82
|
+
];
|
|
83
|
+
};
|
|
84
|
+
exports.getPackageManagerInstall = getPackageManagerInstall;
|
|
85
|
+
const DOCKER_COPY_FILES = `COPY --chown=node:node $APP_DIR .`;
|
|
86
|
+
const getPnpmDockerAppCopyAndBuildScript = (packageManagerInfo) => {
|
|
87
|
+
// the store was copied into the image (like the yarn zip cache), so
|
|
88
|
+
// the prod install links from it instead of hitting the registry
|
|
89
|
+
const storeDir = packageManagerInfo.componentIsInWorkspace
|
|
90
|
+
? "/app/.pnpm-store"
|
|
91
|
+
: "/app/$APP_DIR/.pnpm-store";
|
|
92
|
+
// in a workspace, only install the component (and its workspace
|
|
93
|
+
// dependencies) — the pnpm equivalent of `yarn workspaces focus`.
|
|
94
|
+
// npm package names are shell-safe unquoted (the whole script is
|
|
95
|
+
// embedded in a double-quoted bash export, so inner quotes would nest)
|
|
96
|
+
const filter = packageManagerInfo.componentIsInWorkspace &&
|
|
97
|
+
packageManagerInfo.currentWorkspace
|
|
98
|
+
? ` --filter ${packageManagerInfo.currentWorkspace.name}...`
|
|
99
|
+
: "";
|
|
100
|
+
return new bash_1.BashExpression(`
|
|
101
|
+
${DOCKER_COPY_FILES}
|
|
102
|
+
RUN command -v pnpm >/dev/null 2>&1 || npm install -g pnpm@${packageManagerInfo.version}
|
|
103
|
+
RUN pnpm install --prod --frozen-lockfile --store-dir ${storeDir}${filter}
|
|
104
|
+
`.trim());
|
|
105
|
+
};
|
|
106
|
+
const getDockerAppCopyAndBuildScript = async (context) => {
|
|
107
|
+
var _a, _b, _c;
|
|
108
|
+
const packageManagerInfo = await context.packageManagerInfo;
|
|
109
|
+
if (packageManagerInfo.type === "pnpm") {
|
|
110
|
+
return getPnpmDockerAppCopyAndBuildScript(packageManagerInfo);
|
|
111
|
+
}
|
|
112
|
+
if (packageManagerInfo.isClassic) {
|
|
113
|
+
return new bash_1.BashExpression(`
|
|
114
|
+
RUN ${YARN_INSTALL_CLASSIC} --production --ignore-scripts
|
|
115
|
+
${DOCKER_COPY_FILES}
|
|
116
|
+
RUN ${YARN_INSTALL_CLASSIC} --production
|
|
117
|
+
`.trim());
|
|
118
|
+
}
|
|
119
|
+
const yarnRebuildEnabledDefault = context.build.type === "fromWorkspace"
|
|
120
|
+
? ((_b = (_a = context.build.workspaceBuildConfig.dockerDefaults) === null || _a === void 0 ? void 0 : _a.yarnRebuildEnabled) !== null && _b !== void 0 ? _b : true)
|
|
121
|
+
: true;
|
|
122
|
+
const yarnRebuildEnabled = "docker" in context.build.config &&
|
|
123
|
+
context.build.config.docker &&
|
|
124
|
+
"yarnRebuildEnabled" in context.build.config.docker
|
|
125
|
+
? ((_c = context.build.config.docker.yarnRebuildEnabled) !== null && _c !== void 0 ? _c : yarnRebuildEnabledDefault)
|
|
126
|
+
: yarnRebuildEnabledDefault;
|
|
127
|
+
// yarn >= 4 ships with build in plugins, see https://github.com/yarnpkg/berry/pull/4253
|
|
128
|
+
// trying to import those fail on this version
|
|
129
|
+
const doesNotShipWithBuiltInPlugins = ["2", "3"].some((v) => packageManagerInfo.version.startsWith(v));
|
|
130
|
+
const maybeAddWorkspaceToolsCommand = doesNotShipWithBuiltInPlugins
|
|
131
|
+
? "RUN yarn plugin import workspace-tools"
|
|
132
|
+
: "";
|
|
133
|
+
// copy first everything and then install
|
|
134
|
+
// rebuild first does not work as it will run postinstall and that might require files in the app
|
|
135
|
+
return new bash_1.BashExpression(`
|
|
136
|
+
ENV YARN_ENABLE_INLINE_BUILDS=1
|
|
137
|
+
${DOCKER_COPY_FILES}
|
|
138
|
+
${maybeAddWorkspaceToolsCommand}
|
|
139
|
+
RUN ${YARN_BERRY_PROD_INSTALL}
|
|
140
|
+
${yarnRebuildEnabled ? `RUN ${YARN_BERRY_PROD_REBUILD}` : ""}
|
|
141
|
+
|
|
142
|
+
`.trim());
|
|
143
|
+
};
|
|
144
|
+
exports.getDockerAppCopyAndBuildScript = getDockerAppCopyAndBuildScript;
|
|
145
|
+
//# sourceMappingURL=packageManagerInstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageManagerInstall.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/packageManagerInstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ const utils_1 = require("../../utils");
|
|
|
8
8
|
const createArtifactsConfig_1 = require("../base/createArtifactsConfig");
|
|
9
9
|
const cache_1 = require("./cache");
|
|
10
10
|
const constants_1 = require("./constants");
|
|
11
|
-
const
|
|
11
|
+
const packageManagerInstall_1 = require("./packageManagerInstall");
|
|
12
12
|
const createNodeTestJobs = async (context) => {
|
|
13
13
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
|
|
14
14
|
// don't run tests after release
|
|
@@ -35,8 +35,8 @@ const createNodeTestJobs = async (context) => {
|
|
|
35
35
|
needs: [],
|
|
36
36
|
};
|
|
37
37
|
const buildConfig = context.build.config;
|
|
38
|
-
const [
|
|
39
|
-
(0,
|
|
38
|
+
const [packageManagerInstall, packageManagerInfo, nodeCache] = await Promise.all([
|
|
39
|
+
(0, packageManagerInstall_1.getPackageManagerInstall)(context),
|
|
40
40
|
context.packageManagerInfo,
|
|
41
41
|
// pull-only: the build job is the designated cache writer — lint and
|
|
42
42
|
// test produce equivalent content from the same lockfile, so their
|
|
@@ -52,13 +52,11 @@ const createNodeTestJobs = async (context) => {
|
|
|
52
52
|
...((_b = (_a = buildConfig.audit) === null || _a === void 0 ? void 0 : _a.runnerVariables) !== null && _b !== void 0 ? _b : {}),
|
|
53
53
|
},
|
|
54
54
|
image: (_d = (_c = buildConfig.audit) === null || _c === void 0 ? void 0 : _c.jobImage) !== null && _d !== void 0 ? _d : defaultImage,
|
|
55
|
-
caches: undefined, // audit does not need
|
|
55
|
+
caches: undefined, // audit does not need an install and no cache
|
|
56
56
|
script: [
|
|
57
57
|
`cd ${context.build.dir}`,
|
|
58
58
|
...((_f = (0, utils_1.ensureArrayOrNull)((_e = buildConfig.audit) === null || _e === void 0 ? void 0 : _e.command)) !== null && _f !== void 0 ? _f : [
|
|
59
|
-
packageManagerInfo
|
|
60
|
-
? "yarn audit --level critical"
|
|
61
|
-
: "yarn npm audit --environment production --severity critical", // yarn 2
|
|
59
|
+
(0, packageManagerInstall_1.getDefaultAuditCommand)(packageManagerInfo),
|
|
62
60
|
]),
|
|
63
61
|
],
|
|
64
62
|
allow_failure: (_h = (_g = buildConfig.audit) === null || _g === void 0 ? void 0 : _g.allowFailure) !== null && _h !== void 0 ? _h : true,
|
|
@@ -76,9 +74,9 @@ const createNodeTestJobs = async (context) => {
|
|
|
76
74
|
image: (_p = (_o = buildConfig.lint) === null || _o === void 0 ? void 0 : _o.jobImage) !== null && _p !== void 0 ? _p : defaultImage,
|
|
77
75
|
caches: nodeCache,
|
|
78
76
|
script: [
|
|
79
|
-
...(0,
|
|
77
|
+
...(0, packageManagerInstall_1.ensureNodeVersion)(context),
|
|
80
78
|
`cd ${context.build.dir}`,
|
|
81
|
-
...
|
|
79
|
+
...packageManagerInstall,
|
|
82
80
|
...((_r = (0, utils_1.ensureArrayOrNull)((_q = buildConfig.lint) === null || _q === void 0 ? void 0 : _q.command)) !== null && _r !== void 0 ? _r : ["yarn lint"]),
|
|
83
81
|
],
|
|
84
82
|
allow_failure: (_s = buildConfig.lint) === null || _s === void 0 ? void 0 : _s.allowFailure,
|
|
@@ -96,9 +94,9 @@ const createNodeTestJobs = async (context) => {
|
|
|
96
94
|
image: (_y = (_x = buildConfig.test) === null || _x === void 0 ? void 0 : _x.jobImage) !== null && _y !== void 0 ? _y : (0, runner_1.getRunnerImage)("jobs-testing-chrome"),
|
|
97
95
|
caches: nodeCache,
|
|
98
96
|
script: [
|
|
99
|
-
...(0,
|
|
97
|
+
...(0, packageManagerInstall_1.ensureNodeVersion)(context),
|
|
100
98
|
`cd ${context.build.dir}`,
|
|
101
|
-
...
|
|
99
|
+
...packageManagerInstall,
|
|
102
100
|
...((_0 = (0, utils_1.ensureArrayOrNull)((_z = buildConfig.test) === null || _z === void 0 ? void 0 : _z.command)) !== null && _0 !== void 0 ? _0 : ["yarn test"]),
|
|
103
101
|
],
|
|
104
102
|
allow_failure: (_1 = buildConfig.test) === null || _1 === void 0 ? void 0 : _1.allowFailure,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/testJob.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAE9C,iDAG6B;AAE7B,2CAAgD;AAChD,uCAAwD;AACxD,yEAAsE;AACtE,mCAAuC;AACvC,2CAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"testJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/build/node/testJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ const createComponentContext = async (ctx) => {
|
|
|
14
14
|
throw new Error("componentName may only contain lower case letters, numbers and -");
|
|
15
15
|
}
|
|
16
16
|
const packageManagerInfoPromise = (0, packageManager_1.getPackageManagerInfoForComponent)(ctx.config, ctx.componentName);
|
|
17
|
+
const { type: packageManagerType } = await packageManagerInfoPromise;
|
|
17
18
|
const envContext = (0, getEnvironmentContext_1.getEnvironmentContext)(ctx);
|
|
18
19
|
const componentConfigWithoutDefaults = envContext.envConfigRaw;
|
|
19
20
|
const resolvedBuildType = componentConfigWithoutDefaults.build === false
|
|
@@ -27,12 +28,12 @@ const createComponentContext = async (ctx) => {
|
|
|
27
28
|
const defaults = componentConfigWithoutDefaults.deploy
|
|
28
29
|
? {
|
|
29
30
|
build: resolvedBuildType &&
|
|
30
|
-
build_1.BUILD_TYPES[resolvedBuildType].defaults(envContext),
|
|
31
|
+
build_1.BUILD_TYPES[resolvedBuildType].defaults(envContext, packageManagerType),
|
|
31
32
|
deploy: deploy_1.DEPLOY_TYPES[componentConfigWithoutDefaults.deploy.type].defaults(envContext),
|
|
32
33
|
}
|
|
33
34
|
: {
|
|
34
35
|
build: resolvedBuildType &&
|
|
35
|
-
build_1.BUILD_TYPES[resolvedBuildType].defaults(envContext),
|
|
36
|
+
build_1.BUILD_TYPES[resolvedBuildType].defaults(envContext, packageManagerType),
|
|
36
37
|
deploy: {},
|
|
37
38
|
};
|
|
38
39
|
const componentConfig = (0, utils_1.mergeWithMergingArrays)(defaults, componentConfigWithoutDefaults);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createComponentContext.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/context/createComponentContext.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AACvC,oCAAgE;AAEhE,sCAAyC;AAEzC,+DAA+E;AAS/E,oCAAkD;AAClD,qDAAkD;AAClD,mEAAgE;AAUzD,MAAM,sBAAsB,GAAG,KAAK,EACzC,GAAkC,EACP,EAAE;;IAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,yBAAyB,GAAG,IAAA,kDAAiC,EACjE,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,aAAa,CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"createComponentContext.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/context/createComponentContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,8 @@ async function createWorkspaceContext({ env, components, workspaceName, config,
|
|
|
11
11
|
if (!workspaceConfigRaw) {
|
|
12
12
|
throw new Error(`Workspace ${workspaceName} not found in config`);
|
|
13
13
|
}
|
|
14
|
-
const
|
|
14
|
+
const packageManagerInfo = (0, packageManager_1.getPackageManagerInfoBase)(config);
|
|
15
|
+
const defaults = __1.WORKSPACE_BUILD_TYPES[workspaceConfigRaw.type].defaults((await packageManagerInfo).type);
|
|
15
16
|
const workspaceConfig = (0, utils_1.mergeWithMergingArrays)(defaults, workspaceConfigRaw);
|
|
16
17
|
return {
|
|
17
18
|
name: workspaceName,
|
|
@@ -22,7 +23,7 @@ async function createWorkspaceContext({ env, components, workspaceName, config,
|
|
|
22
23
|
env,
|
|
23
24
|
components,
|
|
24
25
|
fullConfig: config,
|
|
25
|
-
packageManagerInfo
|
|
26
|
+
packageManagerInfo,
|
|
26
27
|
build: {
|
|
27
28
|
type: "workspace",
|
|
28
29
|
dir: (_b = workspaceConfig.dir) !== null && _b !== void 0 ? _b : ".",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createWorkspaceContext.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/context/createWorkspaceContext.ts"],"names":[],"mappings":";;;AAAA,0BAMY;AACZ,+DAAuE;AACvE,oCAAkD;AAClD,yCAAiC;AAE1B,KAAK,UAAU,sBAAsB,CAAC,EAC3C,GAAG,EACH,UAAU,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,OAAO,GAQR;;IACC,MAAM,kBAAkB,GAAG,MAAA,MAAM,CAAC,MAAM,0CAAG,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,sBAAsB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,yBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"createWorkspaceContext.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/context/createWorkspaceContext.ts"],"names":[],"mappings":";;;AAAA,0BAMY;AACZ,+DAAuE;AACvE,oCAAkD;AAClD,yCAAiC;AAE1B,KAAK,UAAU,sBAAsB,CAAC,EAC3C,GAAG,EACH,UAAU,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,OAAO,GAQR;;IACC,MAAM,kBAAkB,GAAG,MAAA,MAAM,CAAC,MAAM,0CAAG,aAAa,CAAC,CAAC;IAC1D,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,aAAa,aAAa,sBAAsB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,0CAAyB,EAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,yBAAqB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAAQ,CACtE,CAAC,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAChC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,8BAAsB,EAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAC7E,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,YAAY;QACZ,OAAO;QACP,IAAI,EAAE,WAAW;QAEjB,eAAe;QAEf,GAAG;QACH,UAAU;QACV,UAAU,EAAE,MAAM;QAClB,kBAAkB;QAClB,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,MAAA,eAAe,CAAC,GAAG,mCAAI,GAAG;YAC/B,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC/B,IAAA,gBAAI,EACF,CACE,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACtD,CACF,CAAC,IAAI,EAAE,CACT;YACH,SAAS,EAAE,eAAe,CAAC,IAAI;YAC/B,MAAM,EAAE,eAAe;SACxB;KACF,CAAC;AACJ,CAAC;AArDD,wDAqDC"}
|
|
@@ -2,19 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createCustomDeployJobs = void 0;
|
|
4
4
|
const getAllCacheConfigsFromConfig_1 = require("../../build/cache/getAllCacheConfigsFromConfig");
|
|
5
|
-
const
|
|
5
|
+
const packageManagerInstall_1 = require("../../build/node/packageManagerInstall");
|
|
6
6
|
const runner_1 = require("../../runner");
|
|
7
7
|
const base_1 = require("../base");
|
|
8
8
|
const types_1 = require("../types");
|
|
9
9
|
const createCustomDeployJobs = async (context) => {
|
|
10
|
-
var _a, _b, _c;
|
|
10
|
+
var _a, _b, _c, _d;
|
|
11
11
|
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
12
12
|
if (!(0, types_1.isOfDeployType)(deployConfig, "custom")) {
|
|
13
13
|
// should not happen
|
|
14
14
|
throw new Error("deploy config is not custom");
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
const yarnInstall = await (0, yarn_1.getYarnInstall)(context, {
|
|
16
|
+
const packageManagerInstall = await (0, packageManagerInstall_1.getPackageManagerInstall)(context, {
|
|
18
17
|
noCustomPostInstall: true,
|
|
19
18
|
});
|
|
20
19
|
const result = (0, base_1.createDeployementJobs)(context, {
|
|
@@ -26,14 +25,16 @@ const createCustomDeployJobs = async (context) => {
|
|
|
26
25
|
: undefined,
|
|
27
26
|
script: [
|
|
28
27
|
`cd ${context.build.dir}`,
|
|
29
|
-
...(deployConfig.
|
|
28
|
+
...(((_c = deployConfig.requiresInstall) !== null && _c !== void 0 ? _c : deployConfig.requiresYarnInstall)
|
|
29
|
+
? packageManagerInstall
|
|
30
|
+
: []),
|
|
30
31
|
...deployConfig.script,
|
|
31
32
|
],
|
|
32
33
|
variables: {},
|
|
33
34
|
},
|
|
34
35
|
stop: deployConfig.stopScript
|
|
35
36
|
? {
|
|
36
|
-
image: (
|
|
37
|
+
image: (_d = deployConfig.jobImage) !== null && _d !== void 0 ? _d : (0, runner_1.getRunnerImage)("jobs-default"),
|
|
37
38
|
script: [...deployConfig.stopScript],
|
|
38
39
|
variables: {},
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/custom/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/custom/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,kFAAkF;AAClF,yCAA8C;AAG9C,kCAAgD;AAEhD,oCAA0C;AAEnC,MAAM,sBAAsB,GAAG,KAAK,EACzC,OAAyB,EACA,EAAE;;IAC3B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAE5C,IAAI,CAAC,IAAA,sBAAc,EAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC5C,oBAAoB;QACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,qBAAqB,GAAG,MAAM,IAAA,gDAAwB,EAAC,OAAO,EAAE;QACpE,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,4BAAqB,EAAC,OAAO,EAAE;QAC5C,MAAM,EAAE;YACN,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;YAC9D,KAAK,EAAE,IAAA,2DAA4B,EAAC,OAAO,EAAE,YAAY,CAAC;YAC1D,SAAS,EAAE,YAAY,CAAC,cAAc;gBACpC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,cAAc,EAAE;gBACxC,CAAC,CAAC,SAAS;YACb,MAAM,EAAE;gBACN,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,CAAC,CAAC,MAAA,YAAY,CAAC,eAAe,mCAAI,YAAY,CAAC,mBAAmB,CAAC;oBACpE,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,YAAY,CAAC,MAAM;aACvB;YACD,SAAS,EAAE,EAAE;SACd;QACD,IAAI,EAAE,YAAY,CAAC,UAAU;YAC3B,CAAC,CAAC;gBACE,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;gBAC9D,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC;gBACpC,SAAS,EAAE,EAAE;aACd;YACH,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAtCW,QAAA,sBAAsB,0BAsCjC"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createPagesDeployJobs = void 0;
|
|
4
4
|
const getAllCacheConfigsFromConfig_1 = require("../../build/cache/getAllCacheConfigsFromConfig");
|
|
5
|
-
const
|
|
5
|
+
const packageManagerInstall_1 = require("../../build/node/packageManagerInstall");
|
|
6
6
|
const runner_1 = require("../../runner");
|
|
7
7
|
const base_1 = require("../base");
|
|
8
8
|
const types_1 = require("../types");
|
|
9
9
|
const createPagesDeployJobs = async (context) => {
|
|
10
|
-
var _a, _b, _c;
|
|
10
|
+
var _a, _b, _c, _d;
|
|
11
11
|
const deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config;
|
|
12
12
|
if (!(0, types_1.isOfDeployType)(deployConfig, "pages")) {
|
|
13
13
|
// should not happen
|
|
@@ -22,7 +22,7 @@ const createPagesDeployJobs = async (context) => {
|
|
|
22
22
|
// parallel deployments) — every merge request gets a site preview
|
|
23
23
|
const pathPrefix = context.environment.envType === "review" ? "mr-$CI_MERGE_REQUEST_IID" : "";
|
|
24
24
|
const publishDir = (_b = deployConfig.publishDir) !== null && _b !== void 0 ? _b : "public";
|
|
25
|
-
const
|
|
25
|
+
const packageManagerInstall = await (0, packageManagerInstall_1.getPackageManagerInstall)(context, {
|
|
26
26
|
noCustomPostInstall: true,
|
|
27
27
|
});
|
|
28
28
|
return (0, base_1.createDeployementJobs)(context, {
|
|
@@ -33,7 +33,9 @@ const createPagesDeployJobs = async (context) => {
|
|
|
33
33
|
pages: { path_prefix: pathPrefix },
|
|
34
34
|
script: [
|
|
35
35
|
`cd ${context.build.dir}`,
|
|
36
|
-
...(deployConfig.
|
|
36
|
+
...(((_d = deployConfig.requiresInstall) !== null && _d !== void 0 ? _d : deployConfig.requiresYarnInstall)
|
|
37
|
+
? packageManagerInstall
|
|
38
|
+
: []),
|
|
37
39
|
...deployConfig.script,
|
|
38
40
|
// the gitlab environment url should point at the published site
|
|
39
41
|
// (the base deploy job reports $ROOT_URL as environment url)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/pages/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"deployJob.js","sourceRoot":"","sources":["../../../../../../../../packages/pipeline/src/deploy/pages/deployJob.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAC9F,kFAAkF;AAClF,yCAA8C;AAG9C,kCAAgD;AAChD,oCAA0C;AAEnC,MAAM,qBAAqB,GAAG,KAAK,EACxC,OAAyB,EACA,EAAE;;IAC3B,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,MAAM,0CAAE,MAAM,CAAC;IAC5C,IAAI,CAAC,IAAA,sBAAc,EAAC,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3C,oBAAoB;QACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QACtC,oEAAoE;QACpE,OAAO,CAAC,IAAI,CACV,cAAc,OAAO,CAAC,IAAI,gGAAgG,CAC3H,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,kEAAkE;IAClE,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAA,YAAY,CAAC,UAAU,mCAAI,QAAQ,CAAC;IAEvD,MAAM,qBAAqB,GAAG,MAAM,IAAA,gDAAwB,EAAC,OAAO,EAAE;QACpE,mBAAmB,EAAE,IAAI;KAC1B,CAAC,CAAC;IAEH,OAAO,IAAA,4BAAqB,EAAC,OAAO,EAAE;QACpC,MAAM,EAAE;YACN,KAAK,EAAE,MAAA,YAAY,CAAC,QAAQ,mCAAI,IAAA,uBAAc,EAAC,cAAc,CAAC;YAC9D,KAAK,EAAE,IAAA,2DAA4B,EAAC,OAAO,EAAE,YAAY,CAAC;YAC1D,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE;YAClC,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;YAClC,MAAM,EAAE;gBACN,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,GAAG,CAAC,CAAC,MAAA,YAAY,CAAC,eAAe,mCAAI,YAAY,CAAC,mBAAmB,CAAC;oBACpE,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,YAAY,CAAC,MAAM;gBACtB,gEAAgE;gBAChE,6DAA6D;gBAC7D,iCAAiC,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;aACvE;YACD,SAAS,EAAE,EAAE;YACb,eAAe,EAAE;gBACf,0DAA0D;gBAC1D,YAAY,EAAE,UAAU;gBACxB,iEAAiE;gBACjE,+DAA+D;gBAC/D,yBAAyB,EAAE,KAAK;gBAChC,uBAAuB,EAAE,KAAK;aAC/B;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AArDW,QAAA,qBAAqB,yBAqDhC"}
|
|
@@ -11,7 +11,13 @@ export type DeployConfigCustom = {
|
|
|
11
11
|
*/
|
|
12
12
|
requiresDocker: boolean;
|
|
13
13
|
/**
|
|
14
|
-
* whether your custom script requires
|
|
14
|
+
* whether your custom script requires the package-manager install
|
|
15
|
+
* (yarn/pnpm, autodetected) to run first
|
|
16
|
+
*/
|
|
17
|
+
requiresInstall?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated use {@link requiresInstall} — same behavior (the
|
|
20
|
+
* install always uses the project's detected package manager)
|
|
15
21
|
*/
|
|
16
22
|
requiresYarnInstall?: boolean;
|
|
17
23
|
/**
|
|
@@ -27,7 +27,13 @@ export type DeployConfigPages = {
|
|
|
27
27
|
*/
|
|
28
28
|
publishDir?: string;
|
|
29
29
|
/**
|
|
30
|
-
* whether the script needs
|
|
30
|
+
* whether the script needs the package-manager install (yarn/pnpm,
|
|
31
|
+
* autodetected) to run first
|
|
32
|
+
*/
|
|
33
|
+
requiresInstall?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated use {@link requiresInstall} — same behavior (the
|
|
36
|
+
* install always uses the project's detected package manager)
|
|
31
37
|
*/
|
|
32
38
|
requiresYarnInstall?: boolean;
|
|
33
39
|
/**
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import memoizee from "memoizee";
|
|
2
|
+
import type { PackageManagerType } from "../types/context";
|
|
3
|
+
export type DetectedPackageManager = {
|
|
4
|
+
type: PackageManagerType;
|
|
5
|
+
version: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* detect which package manager the project uses (and its version).
|
|
9
|
+
*
|
|
10
|
+
* Order: the `packageManager` field in package.json (cwd, then git root)
|
|
11
|
+
* wins, then the lockfile present (pnpm-lock.yaml → pnpm, yarn.lock →
|
|
12
|
+
* yarn), then falling back to yarn (the historical default).
|
|
13
|
+
*
|
|
14
|
+
* An `explicitType` (from `packageManager` in catladder.ts) overrides the
|
|
15
|
+
* detected type; the version is still taken from the `packageManager`
|
|
16
|
+
* field when it pins the same manager, otherwise from the installed CLI.
|
|
17
|
+
*/
|
|
18
|
+
export declare const detectPackageManager: ((explicitType?: PackageManagerType) => Promise<DetectedPackageManager>) & memoizee.Memoized<(explicitType?: PackageManagerType) => Promise<DetectedPackageManager>>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectPackageManager = void 0;
|
|
7
|
+
const child_process_promise_1 = require("child-process-promise");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const promises_1 = require("fs/promises");
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const memoizee_1 = __importDefault(require("memoizee"));
|
|
12
|
+
const readPackageManagerField = async (dir) => {
|
|
13
|
+
try {
|
|
14
|
+
const pkg = JSON.parse(await (0, promises_1.readFile)((0, path_1.join)(dir, "package.json"), "utf-8"));
|
|
15
|
+
const match = /^(yarn|pnpm)@(.+)$/.exec(pkg.packageManager);
|
|
16
|
+
if (!match)
|
|
17
|
+
return null;
|
|
18
|
+
return { type: match[1], version: match[2] };
|
|
19
|
+
}
|
|
20
|
+
catch (_a) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
const detectByLockfile = (dir) => {
|
|
25
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(dir, "pnpm-lock.yaml")))
|
|
26
|
+
return "pnpm";
|
|
27
|
+
if ((0, fs_1.existsSync)((0, path_1.join)(dir, "yarn.lock")))
|
|
28
|
+
return "yarn";
|
|
29
|
+
return null;
|
|
30
|
+
};
|
|
31
|
+
const getGitRoot = async () => {
|
|
32
|
+
try {
|
|
33
|
+
return (await (0, child_process_promise_1.exec)("git rev-parse --show-toplevel")).stdout.trim();
|
|
34
|
+
}
|
|
35
|
+
catch (_a) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const getInstalledVersion = async (type) => {
|
|
40
|
+
try {
|
|
41
|
+
return (await (0, child_process_promise_1.exec)(`${type} --version`)).stdout.trim();
|
|
42
|
+
}
|
|
43
|
+
catch (_a) {
|
|
44
|
+
return "";
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* detect which package manager the project uses (and its version).
|
|
49
|
+
*
|
|
50
|
+
* Order: the `packageManager` field in package.json (cwd, then git root)
|
|
51
|
+
* wins, then the lockfile present (pnpm-lock.yaml → pnpm, yarn.lock →
|
|
52
|
+
* yarn), then falling back to yarn (the historical default).
|
|
53
|
+
*
|
|
54
|
+
* An `explicitType` (from `packageManager` in catladder.ts) overrides the
|
|
55
|
+
* detected type; the version is still taken from the `packageManager`
|
|
56
|
+
* field when it pins the same manager, otherwise from the installed CLI.
|
|
57
|
+
*/
|
|
58
|
+
exports.detectPackageManager = (0, memoizee_1.default)(async (explicitType) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
const roots = [process.cwd()];
|
|
61
|
+
const gitRoot = await getGitRoot();
|
|
62
|
+
if (gitRoot && gitRoot !== process.cwd())
|
|
63
|
+
roots.push(gitRoot);
|
|
64
|
+
let fromField = null;
|
|
65
|
+
for (const root of roots) {
|
|
66
|
+
fromField = await readPackageManagerField(root);
|
|
67
|
+
if (fromField)
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
const detectedType = (_b = (_a = explicitType !== null && explicitType !== void 0 ? explicitType : fromField === null || fromField === void 0 ? void 0 : fromField.type) !== null && _a !== void 0 ? _a : roots.map(detectByLockfile).find(Boolean)) !== null && _b !== void 0 ? _b : "yarn";
|
|
71
|
+
const version = (fromField === null || fromField === void 0 ? void 0 : fromField.type) === detectedType
|
|
72
|
+
? fromField.version
|
|
73
|
+
: await getInstalledVersion(detectedType);
|
|
74
|
+
return { type: detectedType, version };
|
|
75
|
+
}, { promise: true });
|
|
76
|
+
//# sourceMappingURL=detectPackageManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectPackageManager.js","sourceRoot":"","sources":["../../../../../../../packages/pipeline/src/pipeline/detectPackageManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Config, PackageManagerInfoBase, PackageManagerInfoComponent } from "../types";
|
|
2
2
|
import memoizee from "memoizee";
|
|
3
3
|
export declare const getPackageManagerInfoForComponent: (config: Config, componentName: string) => Promise<PackageManagerInfoComponent>;
|
|
4
|
-
export declare const getPackageManagerInfoBase: (() => Promise<PackageManagerInfoBase>) & memoizee.Memoized<() => Promise<PackageManagerInfoBase>>;
|
|
4
|
+
export declare const getPackageManagerInfoBase: ((config?: Config) => Promise<PackageManagerInfoBase>) & memoizee.Memoized<(config?: Config) => Promise<PackageManagerInfoBase>>;
|