@nx-extend/vercel 15.0.0 → 16.1.0
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/CHANGELOG.md +24 -0
- package/package.json +1 -1
- package/src/executors/build/build.impl.js +19 -30
- package/src/executors/build/build.impl.js.map +1 -1
- package/src/executors/build/build.impl.ts +20 -33
- package/src/executors/build/utils/create-repo-json.d.ts +4 -0
- package/src/executors/build/utils/create-repo-json.js +31 -0
- package/src/executors/build/utils/create-repo-json.js.map +1 -0
- package/src/executors/deploy/deploy.impl.d.ts +0 -1
- package/src/executors/deploy/deploy.impl.js +6 -24
- package/src/executors/deploy/deploy.impl.js.map +1 -1
- package/src/executors/deploy/deploy.impl.ts +6 -32
- package/src/utils/add-env-variables-to-file.js +3 -2
- package/src/utils/add-env-variables-to-file.js.map +1 -1
- package/src/utils/constants.d.ts +2 -0
- package/src/utils/constants.js +6 -0
- package/src/utils/constants.js.map +1 -0
- package/src/utils/vercel-token.d.ts +0 -1
- package/src/utils/vercel-token.js +0 -5
- package/src/utils/vercel-token.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,28 @@
|
|
|
1
1
|
|
|
2
|
+
# [16.1.0](https://github.com/tripss/nx-extend/compare/vercel@16.0.0...vercel@16.1.0) (2026-02-08)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **vercel:** Refactor repo.json creation logic into utility function ([3902ccf](https://github.com/tripss/nx-extend/commit/3902ccf45fb26f94f74c846d2a35e40cf321eb0e))
|
|
8
|
+
* **vercel:** Refactor Vercel directory handling and repo.json creation logic ([c8d0081](https://github.com/tripss/nx-extend/commit/c8d0081d1487bf555f1be65578ddc2eff18c4387))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# [16.0.0](https://github.com/tripss/nx-extend/compare/vercel@15.0.0...vercel@16.0.0) (2026-02-07)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **vercel:** Simplify execution logic and enhance token handling ([41a837e](https://github.com/tripss/nx-extend/commit/41a837ec19703a786fbc0b3089981169ab44805a))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### BREAKING CHANGES
|
|
21
|
+
|
|
22
|
+
* **vercel:** Updated the Vercel CLI to 50.x, this now requires the root directory to be set inside the vercel project.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
2
26
|
# [15.0.0](https://github.com/tripss/nx-extend/compare/vercel@14.0.0...vercel@15.0.0) (2025-12-22)
|
|
3
27
|
|
|
4
28
|
|
package/package.json
CHANGED
|
@@ -4,12 +4,12 @@ exports.buildExecutor = buildExecutor;
|
|
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
|
5
5
|
const parse_target_string_1 = require("@nx/devkit/src/executors/parse-target-string");
|
|
6
6
|
const core_1 = require("@nx-extend/core");
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
7
|
const path_1 = require("path");
|
|
9
8
|
const add_env_variables_to_file_1 = require("../../utils/add-env-variables-to-file");
|
|
9
|
+
const constants_1 = require("../../utils/constants");
|
|
10
10
|
const enrich_vercel_env_file_1 = require("../../utils/enrich-vercel-env-file");
|
|
11
11
|
const get_env_vars_1 = require("../../utils/get-env-vars");
|
|
12
|
-
const
|
|
12
|
+
const create_repo_json_1 = require("./utils/create-repo-json");
|
|
13
13
|
const get_output_directory_1 = require("./utils/get-output-directory");
|
|
14
14
|
function buildExecutor(options, context) {
|
|
15
15
|
const framework = options.framework || 'nextjs';
|
|
@@ -31,36 +31,22 @@ function buildExecutor(options, context) {
|
|
|
31
31
|
if (!outputDirectory) {
|
|
32
32
|
throw new Error(`"${buildTarget}" target has no "outputPath" configured!`);
|
|
33
33
|
}
|
|
34
|
+
const { root: projectRoot } = context.projectsConfigurations.projects[context.projectName];
|
|
35
|
+
// Create repo.json, used for deployments to Vercel
|
|
36
|
+
(0, create_repo_json_1.createRepoJson)(options.orgId, options.projectId, context.projectName, projectRoot);
|
|
37
|
+
// First, make sure the .vercel/project.json exists
|
|
34
38
|
const vercelDirectory = '.vercel';
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
(0, fs_1.rmSync)(vercelDirectoryLocation, {
|
|
38
|
-
recursive: true
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
// First make sure the .vercel/project.json exists
|
|
42
|
-
(0, devkit_1.writeJsonFile)(`./${vercelDirectory}/project.json`, {
|
|
39
|
+
const vercelProjectJson = `${projectRoot}/${vercelDirectory}/project.json`;
|
|
40
|
+
(0, devkit_1.writeJsonFile)(vercelProjectJson, {
|
|
43
41
|
projectId: options.projectId,
|
|
44
42
|
orgId: options.orgId,
|
|
45
43
|
settings: {}
|
|
46
44
|
});
|
|
47
|
-
const vercelCommand = 'npx vercel@33.0.2';
|
|
48
45
|
const vercelEnvironment = (context.configurationName === 'production' || options.deployment === 'production')
|
|
49
46
|
? 'production'
|
|
50
47
|
: 'preview';
|
|
51
|
-
// Pull latest
|
|
52
|
-
const { success: pullSuccess } = (0, core_1.execCommand)((0, core_1.buildCommand)([
|
|
53
|
-
`${vercelCommand} pull --yes`,
|
|
54
|
-
`--environment=${vercelEnvironment}`,
|
|
55
|
-
vercel_token_1.vercelToken && `--token=${vercel_token_1.vercelToken}`,
|
|
56
|
-
core_1.USE_VERBOSE_LOGGING && '--debug'
|
|
57
|
-
]));
|
|
58
|
-
if (!pullSuccess) {
|
|
59
|
-
throw new Error(`Was unable to pull!`);
|
|
60
|
-
}
|
|
61
|
-
const vercelProjectJson = `./${vercelDirectory}/project.json`;
|
|
62
48
|
const vercelEnvFile = `.env.${vercelEnvironment}.local`;
|
|
63
|
-
const vercelEnvFileLocation = (0, path_1.join)(
|
|
49
|
+
const vercelEnvFileLocation = (0, path_1.join)(projectRoot, vercelDirectory);
|
|
64
50
|
const envVars = (0, get_env_vars_1.getEnvVars)(options.envVars, true);
|
|
65
51
|
if (envVars.length > 0) {
|
|
66
52
|
(0, add_env_variables_to_file_1.addEnvVariablesToFile)((0, path_1.join)(vercelEnvFileLocation, vercelEnvFile), envVars);
|
|
@@ -82,21 +68,24 @@ function buildExecutor(options, context) {
|
|
|
82
68
|
nodeVersion: options.nodeVersion || '24.x'
|
|
83
69
|
}
|
|
84
70
|
});
|
|
71
|
+
const projectVercelDirectory = `${projectRoot}/${vercelDirectory}`;
|
|
85
72
|
const { success } = (0, core_1.execCommand)((0, core_1.buildCommand)([
|
|
86
|
-
`${
|
|
87
|
-
`--output ${
|
|
73
|
+
`${constants_1.VERCEL_COMMAND} build`,
|
|
74
|
+
`--output ${projectVercelDirectory}/output`,
|
|
88
75
|
vercelEnvironment === 'production' && '--prod',
|
|
89
76
|
options.config && `--local-config=${(0, path_1.join)(devkit_1.workspaceRoot, options.config)}`,
|
|
90
|
-
|
|
77
|
+
constants_1.VERCEL_TOKEN && `--token=${constants_1.VERCEL_TOKEN}`,
|
|
91
78
|
core_1.USE_VERBOSE_LOGGING && '--debug'
|
|
92
|
-
])
|
|
79
|
+
]), {
|
|
80
|
+
cwd: projectRoot
|
|
81
|
+
});
|
|
93
82
|
if (success) {
|
|
94
83
|
// Write the project.json to the .vercel directory
|
|
95
|
-
(0, devkit_1.writeJsonFile)((0, path_1.join)(
|
|
84
|
+
(0, devkit_1.writeJsonFile)((0, path_1.join)(projectVercelDirectory, 'project.json'), (0, devkit_1.readJsonFile)(vercelProjectJson));
|
|
96
85
|
// Also copy over the env files
|
|
97
|
-
(0, core_1.copyFile)(vercelEnvFileLocation,
|
|
86
|
+
(0, core_1.copyFile)(vercelEnvFileLocation, projectVercelDirectory, vercelEnvFile);
|
|
98
87
|
// Also copy the .vercelignore
|
|
99
|
-
(0, core_1.copyFile)(context.root,
|
|
88
|
+
(0, core_1.copyFile)(context.root, projectVercelDirectory, '.vercelignore');
|
|
100
89
|
}
|
|
101
90
|
return Promise.resolve({ success });
|
|
102
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.impl.js","sourceRoot":"","sources":["../../../../../../packages/vercel/src/executors/build/build.impl.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"build.impl.js","sourceRoot":"","sources":["../../../../../../packages/vercel/src/executors/build/build.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,10 @@ import { join } from 'path'
|
|
|
13
13
|
import type { ExecutorContext } from '@nx/devkit'
|
|
14
14
|
|
|
15
15
|
import { addEnvVariablesToFile } from '../../utils/add-env-variables-to-file'
|
|
16
|
+
import { VERCEL_COMMAND, VERCEL_TOKEN } from '../../utils/constants'
|
|
16
17
|
import { enrichVercelEnvFile } from '../../utils/enrich-vercel-env-file'
|
|
17
18
|
import { getEnvVars } from '../../utils/get-env-vars'
|
|
18
|
-
import {
|
|
19
|
+
import { createRepoJson } from './utils/create-repo-json'
|
|
19
20
|
import { getOutputDirectory } from './utils/get-output-directory'
|
|
20
21
|
|
|
21
22
|
export interface BuildOptions {
|
|
@@ -60,43 +61,26 @@ export function buildExecutor(
|
|
|
60
61
|
throw new Error(`"${buildTarget}" target has no "outputPath" configured!`)
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
const
|
|
64
|
-
const vercelDirectoryLocation = join(context.root, vercelDirectory)
|
|
64
|
+
const { root: projectRoot } = context.projectsConfigurations.projects[context.projectName]
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
recursive: true
|
|
69
|
-
})
|
|
70
|
-
}
|
|
66
|
+
// Create repo.json, used for deployments to Vercel
|
|
67
|
+
createRepoJson(options.orgId, options.projectId, context.projectName, projectRoot)
|
|
71
68
|
|
|
72
|
-
// First make sure the .vercel/project.json exists
|
|
73
|
-
|
|
69
|
+
// First, make sure the .vercel/project.json exists
|
|
70
|
+
const vercelDirectory = '.vercel'
|
|
71
|
+
const vercelProjectJson = `${projectRoot}/${vercelDirectory}/project.json`
|
|
72
|
+
writeJsonFile(vercelProjectJson, {
|
|
74
73
|
projectId: options.projectId,
|
|
75
74
|
orgId: options.orgId,
|
|
76
75
|
settings: {}
|
|
77
76
|
})
|
|
78
77
|
|
|
79
|
-
const vercelCommand = 'npx vercel@33.0.2'
|
|
80
78
|
const vercelEnvironment = (context.configurationName === 'production' || options.deployment === 'production')
|
|
81
79
|
? 'production'
|
|
82
80
|
: 'preview'
|
|
83
81
|
|
|
84
|
-
// Pull latest
|
|
85
|
-
const { success: pullSuccess } = execCommand(buildCommand([
|
|
86
|
-
`${vercelCommand} pull --yes`,
|
|
87
|
-
`--environment=${vercelEnvironment}`,
|
|
88
|
-
vercelToken && `--token=${vercelToken}`,
|
|
89
|
-
|
|
90
|
-
USE_VERBOSE_LOGGING && '--debug'
|
|
91
|
-
]))
|
|
92
|
-
|
|
93
|
-
if (!pullSuccess) {
|
|
94
|
-
throw new Error(`Was unable to pull!`)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const vercelProjectJson = `./${vercelDirectory}/project.json`
|
|
98
82
|
const vercelEnvFile = `.env.${vercelEnvironment}.local`
|
|
99
|
-
const vercelEnvFileLocation = join(
|
|
83
|
+
const vercelEnvFileLocation = join(projectRoot, vercelDirectory)
|
|
100
84
|
|
|
101
85
|
const envVars = getEnvVars(options.envVars, true)
|
|
102
86
|
if (envVars.length > 0) {
|
|
@@ -122,32 +106,35 @@ export function buildExecutor(
|
|
|
122
106
|
}
|
|
123
107
|
})
|
|
124
108
|
|
|
109
|
+
const projectVercelDirectory = `${projectRoot}/${vercelDirectory}`
|
|
125
110
|
const { success } = execCommand(buildCommand([
|
|
126
|
-
`${
|
|
127
|
-
`--output ${
|
|
111
|
+
`${VERCEL_COMMAND} build`,
|
|
112
|
+
`--output ${projectVercelDirectory}/output`,
|
|
128
113
|
vercelEnvironment === 'production' && '--prod',
|
|
129
114
|
options.config && `--local-config=${join(workspaceRoot, options.config)}`,
|
|
130
|
-
|
|
115
|
+
VERCEL_TOKEN && `--token=${VERCEL_TOKEN}`,
|
|
131
116
|
|
|
132
117
|
USE_VERBOSE_LOGGING && '--debug'
|
|
133
|
-
])
|
|
118
|
+
]), {
|
|
119
|
+
cwd: projectRoot
|
|
120
|
+
})
|
|
134
121
|
|
|
135
122
|
if (success) {
|
|
136
123
|
// Write the project.json to the .vercel directory
|
|
137
124
|
writeJsonFile(
|
|
138
|
-
join(
|
|
125
|
+
join(projectVercelDirectory, 'project.json'),
|
|
139
126
|
readJsonFile(vercelProjectJson)
|
|
140
127
|
)
|
|
141
128
|
// Also copy over the env files
|
|
142
129
|
copyFile(
|
|
143
130
|
vercelEnvFileLocation,
|
|
144
|
-
|
|
131
|
+
projectVercelDirectory,
|
|
145
132
|
vercelEnvFile
|
|
146
133
|
)
|
|
147
134
|
// Also copy the .vercelignore
|
|
148
135
|
copyFile(
|
|
149
136
|
context.root,
|
|
150
|
-
|
|
137
|
+
projectVercelDirectory,
|
|
151
138
|
'.vercelignore'
|
|
152
139
|
)
|
|
153
140
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRepoJson = createRepoJson;
|
|
4
|
+
const devkit_1 = require("@nx/devkit");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
/**
|
|
7
|
+
* Creates a repo.json file if it doesn't exist yet'
|
|
8
|
+
*/
|
|
9
|
+
function createRepoJson(orgId, projectId, projectName, projectRoot) {
|
|
10
|
+
const repoJsonLocation = `.vercel/repo.json`;
|
|
11
|
+
let repoJson;
|
|
12
|
+
if (!(0, node_fs_1.existsSync)(repoJsonLocation)) {
|
|
13
|
+
repoJson = {
|
|
14
|
+
orgId,
|
|
15
|
+
remoteName: 'origin',
|
|
16
|
+
projects: []
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
repoJson = (0, devkit_1.readJsonFile)(repoJsonLocation);
|
|
21
|
+
}
|
|
22
|
+
if (!repoJson.projects.some((project) => project.id === projectId)) {
|
|
23
|
+
repoJson.projects.push({
|
|
24
|
+
id: projectId,
|
|
25
|
+
name: projectName,
|
|
26
|
+
directory: projectRoot
|
|
27
|
+
});
|
|
28
|
+
(0, devkit_1.writeJsonFile)(repoJsonLocation, repoJson);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=create-repo-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-repo-json.js","sourceRoot":"","sources":["../../../../../../../packages/vercel/src/executors/build/utils/create-repo-json.ts"],"names":[],"mappings":";;AAMA,wCA4BC;AAlCD,uCAAwD;AACxD,qCAAoC;AAEpC;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,SAAiB,EAAE,WAAmB,EAAE,WAAmB;IACvG,MAAM,gBAAgB,GAAG,mBAAmB,CAAA;IAE5C,IAAI,QAIH,CAAA;IAED,IAAI,CAAC,IAAA,oBAAU,EAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,QAAQ,GAAG;YACT,KAAK;YACL,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,EAAE;SACb,CAAA;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAA;IAC3C,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;QACnE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YACrB,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,WAAW;SACvB,CAAC,CAAA;QAEF,IAAA,sBAAa,EAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC"}
|
|
@@ -6,40 +6,22 @@ const githubCore = require("@actions/core");
|
|
|
6
6
|
const core_1 = require("@nx-extend/core");
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const path_1 = require("path");
|
|
9
|
-
const
|
|
9
|
+
const constants_1 = require("../../utils/constants");
|
|
10
10
|
function deployExecutor(options, context) {
|
|
11
11
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
let outputDirectory = '';
|
|
15
|
-
if (options.buildTarget) {
|
|
16
|
-
outputDirectory = (0, core_1.getOutputDirectoryFromBuildTarget)(context, options.buildTarget);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
const projectVercelBuildTarget = Object.keys(targets).find((target) => (targets[target].executor === '@nx-extend/vercel:build'));
|
|
20
|
-
if (projectVercelBuildTarget) {
|
|
21
|
-
let projectBuildTarget = ((_b = (_a = targets[projectVercelBuildTarget]) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.buildTarget) || 'build-next';
|
|
22
|
-
if (!projectBuildTarget.includes(':')) {
|
|
23
|
-
projectBuildTarget = `${context.projectName}:${projectBuildTarget}`;
|
|
24
|
-
}
|
|
25
|
-
outputDirectory = (0, core_1.getOutputDirectoryFromBuildTarget)(context, projectBuildTarget);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (!outputDirectory) {
|
|
29
|
-
throw new Error(`Could not find the builds output path!`);
|
|
30
|
-
}
|
|
31
|
-
if (!(0, fs_1.existsSync)((0, path_1.join)(outputDirectory, '.vercel/project.json'))) {
|
|
12
|
+
const { root: projectRoot } = context.projectsConfigurations.projects[context.projectName];
|
|
13
|
+
if (!(0, fs_1.existsSync)((0, path_1.join)(projectRoot, 'project.json'))) {
|
|
32
14
|
throw new Error('No ".vercel/project.json" found in dist folder! ');
|
|
33
15
|
}
|
|
34
16
|
const { success, output } = (0, core_1.execCommand)((0, core_1.buildCommand)([
|
|
35
|
-
|
|
17
|
+
`${constants_1.VERCEL_COMMAND} deploy --prebuilt`,
|
|
36
18
|
(context.configurationName === 'production' || options.deployment === 'production') && '--prod',
|
|
37
|
-
|
|
19
|
+
constants_1.VERCEL_TOKEN && `--token=${constants_1.VERCEL_TOKEN}`,
|
|
38
20
|
options.regions && `--regions=${options.regions}`,
|
|
39
21
|
options.archive && `--archive=${options.archive}`,
|
|
40
22
|
core_1.USE_VERBOSE_LOGGING && '--debug'
|
|
41
23
|
]), {
|
|
42
|
-
cwd:
|
|
24
|
+
cwd: projectRoot
|
|
43
25
|
});
|
|
44
26
|
// When running in GitHub CI add the URL of the deployment as summary
|
|
45
27
|
if ((0, core_1.isCI)()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.impl.js","sourceRoot":"","sources":["../../../../../../packages/vercel/src/executors/deploy/deploy.impl.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"deploy.impl.js","sourceRoot":"","sources":["../../../../../../packages/vercel/src/executors/deploy/deploy.impl.ts"],"names":[],"mappings":";;AAoBA,wCA0CC;;AA9DD,4CAA2C;AAC3C,0CAKwB;AACxB,2BAA+B;AAC/B,+BAA2B;AAI3B,qDAAoE;AAQpE,SAAsB,cAAc,CAClC,OAAsB,EACtB,OAAwB;;QAExB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAC1F,IAAI,CAAC,IAAA,eAAU,EAAC,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAW,EAAC,IAAA,mBAAY,EAAC;YACnD,GAAG,0BAAc,oBAAoB;YACrC,CAAC,OAAO,CAAC,iBAAiB,KAAK,YAAY,IAAI,OAAO,CAAC,UAAU,KAAK,YAAY,CAAC,IAAI,QAAQ;YAC/F,wBAAY,IAAI,WAAW,wBAAY,EAAE;YACzC,OAAO,CAAC,OAAO,IAAI,aAAa,OAAO,CAAC,OAAO,EAAE;YACjD,OAAO,CAAC,OAAO,IAAI,aAAa,OAAO,CAAC,OAAO,EAAE;YAEjD,0BAAmB,IAAI,SAAS;SACjC,CAAC,EAAE;YACF,GAAG,EAAE,WAAW;SACjB,CAAC,CAAA;QAEF,qEAAqE;QACrE,IAAI,IAAA,WAAI,GAAE,EAAE,CAAC;YACX,oFAAoF;YACpF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEhC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CACpB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;gBAClC,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CACtC,CAAA;YAED,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,UAAU,CAAC,OAAO;qBACrB,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;qBACjC,KAAK,EAAE,CAAA;gBAEV,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAA;IACpB,CAAC;CAAA;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -2,7 +2,6 @@ import * as githubCore from '@actions/core'
|
|
|
2
2
|
import {
|
|
3
3
|
buildCommand,
|
|
4
4
|
execCommand,
|
|
5
|
-
getOutputDirectoryFromBuildTarget,
|
|
6
5
|
isCI,
|
|
7
6
|
USE_VERBOSE_LOGGING
|
|
8
7
|
} from '@nx-extend/core'
|
|
@@ -11,10 +10,9 @@ import { join } from 'path'
|
|
|
11
10
|
|
|
12
11
|
import type { ExecutorContext } from '@nx/devkit'
|
|
13
12
|
|
|
14
|
-
import {
|
|
13
|
+
import { VERCEL_COMMAND, VERCEL_TOKEN } from '../../utils/constants'
|
|
15
14
|
|
|
16
15
|
export interface DeployOptions {
|
|
17
|
-
buildTarget?: string
|
|
18
16
|
regions?: string
|
|
19
17
|
archive?: 'tgz'
|
|
20
18
|
deployment?: 'preview' | 'production'
|
|
@@ -24,45 +22,21 @@ export async function deployExecutor(
|
|
|
24
22
|
options: DeployOptions,
|
|
25
23
|
context: ExecutorContext
|
|
26
24
|
): Promise<{ success: boolean }> {
|
|
27
|
-
const {
|
|
28
|
-
|
|
29
|
-
let outputDirectory = ''
|
|
30
|
-
|
|
31
|
-
if (options.buildTarget) {
|
|
32
|
-
outputDirectory = getOutputDirectoryFromBuildTarget(context, options.buildTarget)
|
|
33
|
-
} else {
|
|
34
|
-
const projectVercelBuildTarget = Object.keys(targets).find((target) => (
|
|
35
|
-
targets[target].executor === '@nx-extend/vercel:build'
|
|
36
|
-
))
|
|
37
|
-
|
|
38
|
-
if (projectVercelBuildTarget) {
|
|
39
|
-
let projectBuildTarget = targets[projectVercelBuildTarget]?.options?.buildTarget || 'build-next'
|
|
40
|
-
if (!projectBuildTarget.includes(':')) {
|
|
41
|
-
projectBuildTarget = `${context.projectName}:${projectBuildTarget}`
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
outputDirectory = getOutputDirectoryFromBuildTarget(context, projectBuildTarget)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (!outputDirectory) {
|
|
49
|
-
throw new Error(`Could not find the builds output path!`)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (!existsSync(join(outputDirectory, '.vercel/project.json'))) {
|
|
25
|
+
const { root: projectRoot } = context.projectsConfigurations.projects[context.projectName]
|
|
26
|
+
if (!existsSync(join(projectRoot, 'project.json'))) {
|
|
53
27
|
throw new Error('No ".vercel/project.json" found in dist folder! ')
|
|
54
28
|
}
|
|
55
29
|
|
|
56
30
|
const { success, output } = execCommand(buildCommand([
|
|
57
|
-
|
|
31
|
+
`${VERCEL_COMMAND} deploy --prebuilt`,
|
|
58
32
|
(context.configurationName === 'production' || options.deployment === 'production') && '--prod',
|
|
59
|
-
|
|
33
|
+
VERCEL_TOKEN && `--token=${VERCEL_TOKEN}`,
|
|
60
34
|
options.regions && `--regions=${options.regions}`,
|
|
61
35
|
options.archive && `--archive=${options.archive}`,
|
|
62
36
|
|
|
63
37
|
USE_VERBOSE_LOGGING && '--debug'
|
|
64
38
|
]), {
|
|
65
|
-
cwd:
|
|
39
|
+
cwd: projectRoot
|
|
66
40
|
})
|
|
67
41
|
|
|
68
42
|
// When running in GitHub CI add the URL of the deployment as summary
|
|
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.addEnvVariablesToFile = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const addEnvVariablesToFile = (envFile, envVars) => {
|
|
6
|
-
if ((0, fs_1.existsSync)(envFile)) {
|
|
7
|
-
(0, fs_1.
|
|
6
|
+
if (!(0, fs_1.existsSync)(envFile)) {
|
|
7
|
+
(0, fs_1.writeFileSync)(envFile, '');
|
|
8
8
|
}
|
|
9
|
+
(0, fs_1.appendFileSync)(envFile, envVars.join('\r\n'));
|
|
9
10
|
};
|
|
10
11
|
exports.addEnvVariablesToFile = addEnvVariablesToFile;
|
|
11
12
|
//# sourceMappingURL=add-env-variables-to-file.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-env-variables-to-file.js","sourceRoot":"","sources":["../../../../../packages/vercel/src/utils/add-env-variables-to-file.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"add-env-variables-to-file.js","sourceRoot":"","sources":["../../../../../packages/vercel/src/utils/add-env-variables-to-file.ts"],"names":[],"mappings":";;;AAAA,2BAA8D;AAEvD,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE;IAC1E,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,EAAE,CAAC;QACzB,IAAA,kBAAa,EAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC5B,CAAC;IAED,IAAA,mBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AANY,QAAA,qBAAqB,yBAMjC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VERCEL_COMMAND = exports.VERCEL_TOKEN = void 0;
|
|
4
|
+
exports.VERCEL_TOKEN = process.env.VERCEL_TOKEN;
|
|
5
|
+
exports.VERCEL_COMMAND = 'npx vercel@50.13.2';
|
|
6
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/vercel/src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;AACvC,QAAA,cAAc,GAAG,oBAAoB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const vercelToken: string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-token.js","sourceRoot":"","sources":["../../../../../packages/vercel/src/utils/vercel-token.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA"}
|