@nx-extend/vercel 14.0.0 → 16.0.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 +33 -0
- package/package.json +2 -2
- package/src/executors/build/build.impl.d.ts +1 -1
- package/src/executors/build/build.impl.js +29 -24
- package/src/executors/build/build.impl.js.map +1 -1
- package/src/executors/build/build.impl.ts +32 -28
- package/src/executors/build/schema.json +2 -1
- 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,37 @@
|
|
|
1
1
|
|
|
2
|
+
# [16.0.0](https://github.com/tripss/nx-extend/compare/vercel@15.0.0...vercel@16.0.0) (2026-02-07)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **vercel:** Simplify execution logic and enhance token handling ([41a837e](https://github.com/tripss/nx-extend/commit/41a837ec19703a786fbc0b3089981169ab44805a))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### BREAKING CHANGES
|
|
11
|
+
|
|
12
|
+
* **vercel:** Updated the Vercel CLI to 50.x, this now requires the root directory to be set inside the vercel project.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
# [15.0.0](https://github.com/tripss/nx-extend/compare/vercel@14.0.0...vercel@15.0.0) (2025-12-22)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **vercel:** Add support for Node.js v20 in the Vercel build executor schema ([c80fa22](https://github.com/tripss/nx-extend/commit/c80fa2244d7d429e6250c7e60d6b6b0eb2218fa4))
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
* **vercel:** Add support for Node.js v24 in Vercel build executor ([e25f93b](https://github.com/tripss/nx-extend/commit/e25f93b0830026e129d4c01627ce0e28e715ac82))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### BREAKING CHANGES
|
|
30
|
+
|
|
31
|
+
* **vercel:** Default node version is set to `24.x`, `20.x` is removed.
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
2
35
|
# [14.0.0](https://github.com/tripss/nx-extend/compare/vercel@13.0.1...vercel@14.0.0) (2025-11-23)
|
|
3
36
|
|
|
4
37
|
### Dependency Updates
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx-extend/vercel",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.0.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"nx",
|
|
6
6
|
"vercel"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@nx-extend/core": "10.0.0",
|
|
27
27
|
"tslib": "2.8.1"
|
|
28
28
|
},
|
|
29
|
-
"packageManager": "yarn@4.
|
|
29
|
+
"packageManager": "yarn@4.12.0",
|
|
30
30
|
"types": "./src/index.d.ts",
|
|
31
31
|
"type": "commonjs"
|
|
32
32
|
}
|
|
@@ -7,9 +7,9 @@ const core_1 = require("@nx-extend/core");
|
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const add_env_variables_to_file_1 = require("../../utils/add-env-variables-to-file");
|
|
10
|
+
const constants_1 = require("../../utils/constants");
|
|
10
11
|
const enrich_vercel_env_file_1 = require("../../utils/enrich-vercel-env-file");
|
|
11
12
|
const get_env_vars_1 = require("../../utils/get-env-vars");
|
|
12
|
-
const vercel_token_1 = require("../../utils/vercel-token");
|
|
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';
|
|
@@ -38,29 +38,31 @@ function buildExecutor(options, context) {
|
|
|
38
38
|
recursive: true
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
const { root: projectRoot } = context.projectsConfigurations.projects[context.projectName];
|
|
42
|
+
// Create repo.json, used for deployments to Vercel
|
|
43
|
+
(0, devkit_1.writeJsonFile)(`./${vercelDirectory}/repo.json`, {
|
|
44
|
+
orgId: options.orgId,
|
|
45
|
+
remoteName: 'origin',
|
|
46
|
+
projects: [
|
|
47
|
+
{
|
|
48
|
+
id: options.projectId,
|
|
49
|
+
name: context.projectName,
|
|
50
|
+
directory: projectRoot
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
// First, make sure the .vercel/project.json exists
|
|
55
|
+
const vercelProjectJson = `${projectRoot}/${vercelDirectory}/project.json`;
|
|
56
|
+
(0, devkit_1.writeJsonFile)(vercelProjectJson, {
|
|
43
57
|
projectId: options.projectId,
|
|
44
58
|
orgId: options.orgId,
|
|
45
59
|
settings: {}
|
|
46
60
|
});
|
|
47
|
-
const vercelCommand = 'npx vercel@33.0.2';
|
|
48
61
|
const vercelEnvironment = (context.configurationName === 'production' || options.deployment === 'production')
|
|
49
62
|
? 'production'
|
|
50
63
|
: '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
64
|
const vercelEnvFile = `.env.${vercelEnvironment}.local`;
|
|
63
|
-
const vercelEnvFileLocation = (0, path_1.join)(
|
|
65
|
+
const vercelEnvFileLocation = (0, path_1.join)(projectRoot, vercelDirectory);
|
|
64
66
|
const envVars = (0, get_env_vars_1.getEnvVars)(options.envVars, true);
|
|
65
67
|
if (envVars.length > 0) {
|
|
66
68
|
(0, add_env_variables_to_file_1.addEnvVariablesToFile)((0, path_1.join)(vercelEnvFileLocation, vercelEnvFile), envVars);
|
|
@@ -79,24 +81,27 @@ function buildExecutor(options, context) {
|
|
|
79
81
|
outputDirectory: (0, get_output_directory_1.getOutputDirectory)(framework, outputDirectory),
|
|
80
82
|
rootDirectory: null,
|
|
81
83
|
directoryListing: false,
|
|
82
|
-
nodeVersion: options.nodeVersion || '
|
|
84
|
+
nodeVersion: options.nodeVersion || '24.x'
|
|
83
85
|
}
|
|
84
86
|
});
|
|
87
|
+
const projectVercelDirectory = `${projectRoot}/${vercelDirectory}`;
|
|
85
88
|
const { success } = (0, core_1.execCommand)((0, core_1.buildCommand)([
|
|
86
|
-
`${
|
|
87
|
-
`--output ${
|
|
89
|
+
`${constants_1.VERCEL_COMMAND} build`,
|
|
90
|
+
`--output ${projectVercelDirectory}/output`,
|
|
88
91
|
vercelEnvironment === 'production' && '--prod',
|
|
89
92
|
options.config && `--local-config=${(0, path_1.join)(devkit_1.workspaceRoot, options.config)}`,
|
|
90
|
-
|
|
93
|
+
constants_1.VERCEL_TOKEN && `--token=${constants_1.VERCEL_TOKEN}`,
|
|
91
94
|
core_1.USE_VERBOSE_LOGGING && '--debug'
|
|
92
|
-
])
|
|
95
|
+
]), {
|
|
96
|
+
cwd: projectRoot
|
|
97
|
+
});
|
|
93
98
|
if (success) {
|
|
94
99
|
// Write the project.json to the .vercel directory
|
|
95
|
-
(0, devkit_1.writeJsonFile)((0, path_1.join)(
|
|
100
|
+
(0, devkit_1.writeJsonFile)((0, path_1.join)(projectVercelDirectory, 'project.json'), (0, devkit_1.readJsonFile)(vercelProjectJson));
|
|
96
101
|
// Also copy over the env files
|
|
97
|
-
(0, core_1.copyFile)(vercelEnvFileLocation,
|
|
102
|
+
(0, core_1.copyFile)(vercelEnvFileLocation, projectVercelDirectory, vercelEnvFile);
|
|
98
103
|
// Also copy the .vercelignore
|
|
99
|
-
(0, core_1.copyFile)(context.root,
|
|
104
|
+
(0, core_1.copyFile)(context.root, projectVercelDirectory, '.vercelignore');
|
|
100
105
|
}
|
|
101
106
|
return Promise.resolve({ success });
|
|
102
107
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.impl.js","sourceRoot":"","sources":["../../../../../../packages/vercel/src/executors/build/build.impl.ts"],"names":[],"mappings":";;AAgCA,
|
|
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,9 @@ 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 { vercelToken } from '../../utils/vercel-token'
|
|
19
19
|
import { getOutputDirectory } from './utils/get-output-directory'
|
|
20
20
|
|
|
21
21
|
export interface BuildOptions {
|
|
@@ -25,7 +25,7 @@ export interface BuildOptions {
|
|
|
25
25
|
buildTarget?: string
|
|
26
26
|
framework?: string
|
|
27
27
|
outputPath?: string
|
|
28
|
-
nodeVersion?: '20.x' | '22.x'
|
|
28
|
+
nodeVersion?: '20.x' | '22.x' | '24.x'
|
|
29
29
|
config?: string
|
|
30
30
|
deployment?: 'preview' | 'production'
|
|
31
31
|
}
|
|
@@ -69,34 +69,35 @@ export function buildExecutor(
|
|
|
69
69
|
})
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
const { root: projectRoot } = context.projectsConfigurations.projects[context.projectName]
|
|
73
|
+
|
|
74
|
+
// Create repo.json, used for deployments to Vercel
|
|
75
|
+
writeJsonFile(`./${vercelDirectory}/repo.json`, {
|
|
76
|
+
orgId: options.orgId,
|
|
77
|
+
remoteName: 'origin',
|
|
78
|
+
projects: [
|
|
79
|
+
{
|
|
80
|
+
id: options.projectId,
|
|
81
|
+
name: context.projectName,
|
|
82
|
+
directory: projectRoot
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
// First, make sure the .vercel/project.json exists
|
|
88
|
+
const vercelProjectJson = `${projectRoot}/${vercelDirectory}/project.json`
|
|
89
|
+
writeJsonFile(vercelProjectJson, {
|
|
74
90
|
projectId: options.projectId,
|
|
75
91
|
orgId: options.orgId,
|
|
76
92
|
settings: {}
|
|
77
93
|
})
|
|
78
94
|
|
|
79
|
-
const vercelCommand = 'npx vercel@33.0.2'
|
|
80
95
|
const vercelEnvironment = (context.configurationName === 'production' || options.deployment === 'production')
|
|
81
96
|
? 'production'
|
|
82
97
|
: 'preview'
|
|
83
98
|
|
|
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
99
|
const vercelEnvFile = `.env.${vercelEnvironment}.local`
|
|
99
|
-
const vercelEnvFileLocation = join(
|
|
100
|
+
const vercelEnvFileLocation = join(projectRoot, vercelDirectory)
|
|
100
101
|
|
|
101
102
|
const envVars = getEnvVars(options.envVars, true)
|
|
102
103
|
if (envVars.length > 0) {
|
|
@@ -118,36 +119,39 @@ export function buildExecutor(
|
|
|
118
119
|
outputDirectory: getOutputDirectory(framework, outputDirectory),
|
|
119
120
|
rootDirectory: null,
|
|
120
121
|
directoryListing: false,
|
|
121
|
-
nodeVersion: options.nodeVersion || '
|
|
122
|
+
nodeVersion: options.nodeVersion || '24.x'
|
|
122
123
|
}
|
|
123
124
|
})
|
|
124
125
|
|
|
126
|
+
const projectVercelDirectory = `${projectRoot}/${vercelDirectory}`
|
|
125
127
|
const { success } = execCommand(buildCommand([
|
|
126
|
-
`${
|
|
127
|
-
`--output ${
|
|
128
|
+
`${VERCEL_COMMAND} build`,
|
|
129
|
+
`--output ${projectVercelDirectory}/output`,
|
|
128
130
|
vercelEnvironment === 'production' && '--prod',
|
|
129
131
|
options.config && `--local-config=${join(workspaceRoot, options.config)}`,
|
|
130
|
-
|
|
132
|
+
VERCEL_TOKEN && `--token=${VERCEL_TOKEN}`,
|
|
131
133
|
|
|
132
134
|
USE_VERBOSE_LOGGING && '--debug'
|
|
133
|
-
])
|
|
135
|
+
]), {
|
|
136
|
+
cwd: projectRoot
|
|
137
|
+
})
|
|
134
138
|
|
|
135
139
|
if (success) {
|
|
136
140
|
// Write the project.json to the .vercel directory
|
|
137
141
|
writeJsonFile(
|
|
138
|
-
join(
|
|
142
|
+
join(projectVercelDirectory, 'project.json'),
|
|
139
143
|
readJsonFile(vercelProjectJson)
|
|
140
144
|
)
|
|
141
145
|
// Also copy over the env files
|
|
142
146
|
copyFile(
|
|
143
147
|
vercelEnvFileLocation,
|
|
144
|
-
|
|
148
|
+
projectVercelDirectory,
|
|
145
149
|
vercelEnvFile
|
|
146
150
|
)
|
|
147
151
|
// Also copy the .vercelignore
|
|
148
152
|
copyFile(
|
|
149
153
|
context.root,
|
|
150
|
-
|
|
154
|
+
projectVercelDirectory,
|
|
151
155
|
'.vercelignore'
|
|
152
156
|
)
|
|
153
157
|
}
|
|
@@ -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"}
|