@pushto/cli 0.2.0 → 0.4.6
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/commands/__tests__/deploy-domain.test.d.ts +2 -0
- package/dist/commands/__tests__/deploy-domain.test.d.ts.map +1 -0
- package/dist/commands/__tests__/deploy-domain.test.js +41 -0
- package/dist/commands/__tests__/deploy-domain.test.js.map +1 -0
- package/dist/commands/__tests__/headless-smoke.test.d.ts +2 -0
- package/dist/commands/__tests__/headless-smoke.test.d.ts.map +1 -0
- package/dist/commands/__tests__/headless-smoke.test.js +110 -0
- package/dist/commands/__tests__/headless-smoke.test.js.map +1 -0
- package/dist/commands/auth.d.ts +2 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +77 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/cron.d.ts +2 -0
- package/dist/commands/cron.d.ts.map +1 -0
- package/dist/commands/cron.js +157 -0
- package/dist/commands/cron.js.map +1 -0
- package/dist/commands/db.d.ts +4 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +63 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/deploy.d.ts +16 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +344 -68
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +401 -69
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/domain.d.ts.map +1 -1
- package/dist/commands/domain.js +70 -18
- package/dist/commands/domain.js.map +1 -1
- package/dist/commands/echo.d.ts +2 -0
- package/dist/commands/echo.d.ts.map +1 -0
- package/dist/commands/echo.js +227 -0
- package/dist/commands/echo.js.map +1 -0
- package/dist/commands/env.d.ts +3 -1
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +76 -50
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -11
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +80 -39
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +3 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +77 -21
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mail.d.ts +2 -0
- package/dist/commands/mail.d.ts.map +1 -0
- package/dist/commands/mail.js +105 -0
- package/dist/commands/mail.js.map +1 -0
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +32 -8
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/preview.d.ts +22 -0
- package/dist/commands/preview.d.ts.map +1 -0
- package/dist/commands/preview.js +223 -0
- package/dist/commands/preview.js.map +1 -0
- package/dist/commands/status.d.ts +3 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +62 -12
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +73 -10
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/use.d.ts +2 -0
- package/dist/commands/use.d.ts.map +1 -0
- package/dist/commands/use.js +108 -0
- package/dist/commands/use.js.map +1 -0
- package/dist/commands/vault.d.ts +2 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +119 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +12 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.js +123 -13
- package/dist/index.js.map +1 -1
- package/dist/lib/__tests__/build-runner.test.d.ts +2 -0
- package/dist/lib/__tests__/build-runner.test.d.ts.map +1 -0
- package/dist/lib/__tests__/build-runner.test.js +119 -0
- package/dist/lib/__tests__/build-runner.test.js.map +1 -0
- package/dist/lib/__tests__/cron-tail.test.d.ts +2 -0
- package/dist/lib/__tests__/cron-tail.test.d.ts.map +1 -0
- package/dist/lib/__tests__/cron-tail.test.js +27 -0
- package/dist/lib/__tests__/cron-tail.test.js.map +1 -0
- package/dist/lib/__tests__/detect-static-framework.test.d.ts +2 -0
- package/dist/lib/__tests__/detect-static-framework.test.d.ts.map +1 -0
- package/dist/lib/__tests__/detect-static-framework.test.js +146 -0
- package/dist/lib/__tests__/detect-static-framework.test.js.map +1 -0
- package/dist/lib/__tests__/errors.test.d.ts +2 -0
- package/dist/lib/__tests__/errors.test.d.ts.map +1 -0
- package/dist/lib/__tests__/errors.test.js +56 -0
- package/dist/lib/__tests__/errors.test.js.map +1 -0
- package/dist/lib/__tests__/interactive.test.d.ts +2 -0
- package/dist/lib/__tests__/interactive.test.d.ts.map +1 -0
- package/dist/lib/__tests__/interactive.test.js +79 -0
- package/dist/lib/__tests__/interactive.test.js.map +1 -0
- package/dist/lib/__tests__/output.test.d.ts +2 -0
- package/dist/lib/__tests__/output.test.d.ts.map +1 -0
- package/dist/lib/__tests__/output.test.js +144 -0
- package/dist/lib/__tests__/output.test.js.map +1 -0
- package/dist/lib/__tests__/prepare-artifact.test.d.ts +2 -0
- package/dist/lib/__tests__/prepare-artifact.test.d.ts.map +1 -0
- package/dist/lib/__tests__/prepare-artifact.test.js +55 -0
- package/dist/lib/__tests__/prepare-artifact.test.js.map +1 -0
- package/dist/lib/__tests__/preview-args.test.d.ts +2 -0
- package/dist/lib/__tests__/preview-args.test.d.ts.map +1 -0
- package/dist/lib/__tests__/preview-args.test.js +37 -0
- package/dist/lib/__tests__/preview-args.test.js.map +1 -0
- package/dist/lib/api.d.ts +2 -0
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +38 -5
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/ask.d.ts +15 -0
- package/dist/lib/ask.d.ts.map +1 -0
- package/dist/lib/ask.js +24 -0
- package/dist/lib/ask.js.map +1 -0
- package/dist/lib/build-runner.d.ts +25 -0
- package/dist/lib/build-runner.d.ts.map +1 -0
- package/dist/lib/build-runner.js +141 -0
- package/dist/lib/build-runner.js.map +1 -0
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +13 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/cron-tail.d.ts +10 -0
- package/dist/lib/cron-tail.d.ts.map +1 -0
- package/dist/lib/cron-tail.js +5 -0
- package/dist/lib/cron-tail.js.map +1 -0
- package/dist/lib/detect-static-framework.d.ts +31 -0
- package/dist/lib/detect-static-framework.d.ts.map +1 -0
- package/dist/lib/detect-static-framework.js +96 -0
- package/dist/lib/detect-static-framework.js.map +1 -0
- package/dist/lib/env-parse.d.ts +48 -0
- package/dist/lib/env-parse.d.ts.map +1 -0
- package/dist/lib/env-parse.js +91 -0
- package/dist/lib/env-parse.js.map +1 -0
- package/dist/lib/errors.d.ts +111 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +64 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/file-walker.d.ts +23 -0
- package/dist/lib/file-walker.d.ts.map +1 -0
- package/dist/lib/file-walker.js +114 -0
- package/dist/lib/file-walker.js.map +1 -0
- package/dist/lib/interactive.d.ts +13 -0
- package/dist/lib/interactive.d.ts.map +1 -0
- package/dist/lib/interactive.js +24 -0
- package/dist/lib/interactive.js.map +1 -0
- package/dist/lib/output.d.ts +24 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +71 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/prepare-artifact.d.ts +22 -0
- package/dist/lib/prepare-artifact.d.ts.map +1 -0
- package/dist/lib/prepare-artifact.js +26 -0
- package/dist/lib/prepare-artifact.js.map +1 -0
- package/dist/lib/preview-args.d.ts +20 -0
- package/dist/lib/preview-args.d.ts.map +1 -0
- package/dist/lib/preview-args.js +19 -0
- package/dist/lib/preview-args.js.map +1 -0
- package/dist/lib/resolve-slug.d.ts.map +1 -1
- package/dist/lib/resolve-slug.js +9 -2
- package/dist/lib/resolve-slug.js.map +1 -1
- package/dist/lib/safe-json.d.ts +7 -2
- package/dist/lib/safe-json.d.ts.map +1 -1
- package/dist/lib/safe-json.js +23 -4
- package/dist/lib/safe-json.js.map +1 -1
- package/dist/lib/update-check.d.ts +17 -0
- package/dist/lib/update-check.d.ts.map +1 -0
- package/dist/lib/update-check.js +81 -0
- package/dist/lib/update-check.js.map +1 -0
- package/dist/lib/upload-limits.d.ts +17 -0
- package/dist/lib/upload-limits.d.ts.map +1 -0
- package/dist/lib/upload-limits.js +17 -0
- package/dist/lib/upload-limits.js.map +1 -0
- package/dist/lib/zip-project.d.ts +19 -0
- package/dist/lib/zip-project.d.ts.map +1 -0
- package/dist/lib/zip-project.js +39 -0
- package/dist/lib/zip-project.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/package.json +5 -8
package/dist/commands/deploy.js
CHANGED
|
@@ -2,91 +2,196 @@ import chalk from 'chalk';
|
|
|
2
2
|
import ora from 'ora';
|
|
3
3
|
import fs from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { execSync } from 'node:child_process';
|
|
6
|
-
import archiver from 'archiver';
|
|
7
5
|
import { getToken } from '../lib/config.js';
|
|
8
|
-
import { api } from '../lib/api.js';
|
|
6
|
+
import { api, deploySignal } from '../lib/api.js';
|
|
9
7
|
import { resolveSlug } from '../lib/resolve-slug.js';
|
|
10
8
|
import { safeJson } from '../lib/safe-json.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
9
|
+
import { getGitInfo, zipDirectory } from '../lib/zip-project.js';
|
|
10
|
+
import { SERVER_UPLOAD_CAP_BYTES, fmtMB } from '../lib/upload-limits.js';
|
|
11
|
+
import { parseEnvFile } from '../lib/env-parse.js';
|
|
12
|
+
import { prepareArtifact } from '../lib/prepare-artifact.js';
|
|
13
|
+
import { canPrompt } from '../lib/interactive.js';
|
|
14
|
+
import { ask } from '../lib/ask.js';
|
|
15
|
+
import { fail } from '../lib/output.js';
|
|
16
|
+
/**
|
|
17
|
+
* Decide whether to ask for a custom domain, and never reach for stdin when
|
|
18
|
+
* the answer is no. Pre-fix this logic was inline and called ask()
|
|
19
|
+
* unconditionally, which hung every headless caller on their first deploy:
|
|
20
|
+
* readline's callback never fires on EOF, so the promise never settled and
|
|
21
|
+
* the enclosing try/catch was inert, because hanging is not throwing.
|
|
22
|
+
*/
|
|
23
|
+
export const resolveCustomDomain = async (args) => {
|
|
24
|
+
if (args.current)
|
|
25
|
+
return null;
|
|
26
|
+
if (!args.canPrompt)
|
|
27
|
+
return null;
|
|
28
|
+
const answer = await args.ask(chalk.dim(' custom domain? (enter to skip): '));
|
|
29
|
+
return answer ? answer : null;
|
|
33
30
|
};
|
|
34
|
-
const
|
|
35
|
-
return new Promise((resolve, reject) => {
|
|
36
|
-
const archive = archiver('zip', { zlib: { level: 9 } });
|
|
37
|
-
const chunks = [];
|
|
38
|
-
archive.on('data', (chunk) => chunks.push(chunk));
|
|
39
|
-
archive.on('end', () => resolve(Buffer.concat(chunks)));
|
|
40
|
-
archive.on('error', reject);
|
|
41
|
-
// Add files, respecting ignores
|
|
42
|
-
const addDir = (dirPath, prefix) => {
|
|
43
|
-
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
|
44
|
-
for (const entry of entries) {
|
|
45
|
-
if (IGNORE.includes(entry.name))
|
|
46
|
-
continue;
|
|
47
|
-
if (entry.name.startsWith('.') && entry.name !== '.htaccess')
|
|
48
|
-
continue;
|
|
49
|
-
const fullPath = path.join(dirPath, entry.name);
|
|
50
|
-
const archivePath = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
51
|
-
if (entry.isFile()) {
|
|
52
|
-
archive.file(fullPath, { name: archivePath });
|
|
53
|
-
}
|
|
54
|
-
else if (entry.isDirectory()) {
|
|
55
|
-
addDir(fullPath, archivePath);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
addDir(dir, '');
|
|
60
|
-
archive.finalize();
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
|
-
export const deploy = async () => {
|
|
31
|
+
export const deploy = async (opts = {}) => {
|
|
64
32
|
const token = getToken();
|
|
65
33
|
if (!token) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
34
|
+
fail('NOT_AUTHENTICATED', 'not logged in.', opts, {
|
|
35
|
+
stage: 'auth',
|
|
36
|
+
fix: { label: 'sign in', cmd: 'pushto login', prose: 'run {cmd} first.' },
|
|
37
|
+
});
|
|
69
38
|
}
|
|
70
39
|
const slug = resolveSlug();
|
|
71
40
|
if (!slug) {
|
|
72
|
-
|
|
73
|
-
|
|
41
|
+
fail('NO_PROJECT', 'no project here.', opts, {
|
|
42
|
+
fix: { label: 'get started', cmd: 'pushto init <name>', prose: 'run {cmd} to get started.' },
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
// Echo the slug + cwd up front so users in the wrong directory (stale
|
|
46
|
+
// .pushto from a project they forgot, or `pushto` accidentally run from
|
|
47
|
+
// a parent dir that has its own .pushto) catch the mistake BEFORE we
|
|
48
|
+
// zip and upload. Pre-fix the slug only surfaced in the success box at
|
|
49
|
+
// the end — by which point the wrong project had already been deployed.
|
|
50
|
+
console.log(chalk.dim('> deploying ') + chalk.cyan(slug) + chalk.dim(' from ') + chalk.dim(process.cwd()));
|
|
51
|
+
// Auto-import env vars before deploying. Prefer .env.production so users
|
|
52
|
+
// can keep local-only vars (e.g. ADMIN_PASSWORD that gates dev too) in .env
|
|
53
|
+
// without them silently leaking to remote on every push.
|
|
54
|
+
const envFiles = ['.env.production', '.env'];
|
|
55
|
+
for (const envFile of envFiles) {
|
|
56
|
+
const envPath = path.join(process.cwd(), envFile);
|
|
57
|
+
if (fs.existsSync(envPath)) {
|
|
58
|
+
const envContent = fs.readFileSync(envPath, 'utf-8');
|
|
59
|
+
const vars = parseEnvFile(envContent);
|
|
60
|
+
const count = Object.keys(vars).length;
|
|
61
|
+
if (count > 0) {
|
|
62
|
+
const envSpinner = ora(`found ${count} env vars in ${envFile} — importing...`).start();
|
|
63
|
+
try {
|
|
64
|
+
const envRes = await api(`/cli/projects/${slug}/env`, {
|
|
65
|
+
method: 'PUT',
|
|
66
|
+
headers: { 'Content-Type': 'application/json' },
|
|
67
|
+
body: JSON.stringify({ vars }),
|
|
68
|
+
});
|
|
69
|
+
if (envRes.ok) {
|
|
70
|
+
const envData = await safeJson(envRes);
|
|
71
|
+
const imported = envData.imported ?? count;
|
|
72
|
+
const skipped = envData.skipped ?? [];
|
|
73
|
+
envSpinner.succeed(chalk.green(`> ${imported} env vars imported from ${envFile}`));
|
|
74
|
+
// Surface skipped keys so the user knows their app may be
|
|
75
|
+
// missing config — pre-fix the bulk PUT silently dropped
|
|
76
|
+
// anything that failed validation (key not [A-Z_], value
|
|
77
|
+
// > 10KB, value contained newlines).
|
|
78
|
+
if (skipped.length > 0) {
|
|
79
|
+
console.log(chalk.yellow(` ${skipped.length} skipped:`));
|
|
80
|
+
for (const s of skipped) {
|
|
81
|
+
console.log(chalk.dim(` ${s.key} → ${s.reason}`));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
envSpinner.warn(chalk.yellow(`> couldn't import env vars (non-blocking)`));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
envSpinner.warn(chalk.yellow(`> couldn't import env vars (non-blocking)`));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
break; // only import from the first .env file found
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Check if custom domain is set — prompt on first deploy only
|
|
97
|
+
try {
|
|
98
|
+
const projectRes = await api(`/cli/projects/${slug}`);
|
|
99
|
+
if (projectRes.ok) {
|
|
100
|
+
const projectData = await safeJson(projectRes);
|
|
101
|
+
const domain = await resolveCustomDomain({
|
|
102
|
+
current: projectData.customDomain,
|
|
103
|
+
canPrompt: canPrompt(opts),
|
|
104
|
+
ask,
|
|
105
|
+
});
|
|
106
|
+
if (domain) {
|
|
107
|
+
const domainSpinner = ora(`setting up ${domain}...`).start();
|
|
108
|
+
try {
|
|
109
|
+
const domRes = await api(`/cli/projects/${slug}/domain`, {
|
|
110
|
+
method: 'POST',
|
|
111
|
+
headers: { 'Content-Type': 'application/json' },
|
|
112
|
+
body: JSON.stringify({ domain }),
|
|
113
|
+
});
|
|
114
|
+
if (domRes.ok) {
|
|
115
|
+
const domData = await safeJson(domRes);
|
|
116
|
+
domainSpinner.succeed(chalk.green(`> ${domain} configured`));
|
|
117
|
+
if (domData.nameservers?.length) {
|
|
118
|
+
console.log(chalk.dim(' update your nameservers to:'));
|
|
119
|
+
for (const ns of domData.nameservers) {
|
|
120
|
+
console.log(chalk.cyan(` ${ns}`));
|
|
121
|
+
}
|
|
122
|
+
console.log('');
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const errData = await safeJson(domRes);
|
|
127
|
+
domainSpinner.warn(chalk.yellow(`> ${errData.error ?? 'could not set up domain'}`));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
domainSpinner.warn(chalk.yellow('> domain setup skipped'));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch { /* project check failed — continue with deploy */ }
|
|
137
|
+
// Static-output frameworks (vite, astro, gatsby, angular, cra, eleventy)
|
|
138
|
+
// build HERE, on this machine, and only the output ships. Everything
|
|
139
|
+
// else zips the cwd exactly as before.
|
|
140
|
+
const buildSpinner = ora('checking project...').start();
|
|
141
|
+
const prep = await prepareArtifact(process.cwd(), (line) => { buildSpinner.text = line; });
|
|
142
|
+
if (prep.kind === 'failed') {
|
|
143
|
+
buildSpinner.fail(chalk.red('> build failed.'));
|
|
144
|
+
console.log('');
|
|
145
|
+
console.log(chalk.red(' reason: ') + chalk.dim(prep.message));
|
|
146
|
+
if (prep.buildOutput.trim()) {
|
|
147
|
+
const tail = prep.buildOutput.trim().split('\n').slice(-40).join('\n');
|
|
148
|
+
console.log(chalk.dim(tail.replace(/^/gm, ' ')));
|
|
149
|
+
}
|
|
74
150
|
process.exit(1);
|
|
75
151
|
}
|
|
152
|
+
if (prep.kind === 'artifact') {
|
|
153
|
+
buildSpinner.succeed(chalk.green(`> built with ${prep.framework}`));
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
buildSpinner.stop();
|
|
157
|
+
}
|
|
76
158
|
const spinner = ora('zipping project...').start();
|
|
77
159
|
try {
|
|
78
160
|
const git = getGitInfo();
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
const sizeMB = (
|
|
161
|
+
const { buffer: zipBuffer, fileCount: zippedCount } = await zipDirectory(prep.zipDir);
|
|
162
|
+
const sizeBytes = zipBuffer.length;
|
|
163
|
+
const sizeMB = (sizeBytes / 1024 / 1024).toFixed(1);
|
|
164
|
+
// Catch empty uploads before we waste a roundtrip. A user in the wrong
|
|
165
|
+
// directory, or with everything gitignored, would otherwise get a
|
|
166
|
+
// server-side 400 ~30s later. Tell them up front + point them at the
|
|
167
|
+
// doctor command for diagnosis.
|
|
168
|
+
if (zippedCount === 0) {
|
|
169
|
+
spinner.fail(chalk.red('> no files found in this directory.'));
|
|
170
|
+
console.log(chalk.dim(' is your entire project in .gitignore? are you in the wrong directory?'));
|
|
171
|
+
console.log(chalk.dim(' run ') + chalk.cyan('pushto doctor') + chalk.dim(' to see what would be uploaded.'));
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
// Match the server cap exactly so we fail FAST (locally, instantly)
|
|
175
|
+
// instead of slow (after a 30-second upload that the server then 413s).
|
|
176
|
+
// Pre-fix the local cap was 500MB but the server cap is 50MB — uploads
|
|
177
|
+
// between 50MB and 500MB went up the wire and got rejected after the
|
|
178
|
+
// long upload finished, with a confusing "upload too large" error
|
|
179
|
+
// long after the user had walked away thinking it was working.
|
|
180
|
+
if (sizeBytes > SERVER_UPLOAD_CAP_BYTES) {
|
|
181
|
+
spinner.fail(chalk.red(`> deploy is ${fmtMB(sizeBytes)} — server cap is ${fmtMB(SERVER_UPLOAD_CAP_BYTES)}.`));
|
|
182
|
+
console.log(chalk.dim(' add large files (videos, datasets, build artifacts) to .gitignore or .pushtoignore.'));
|
|
183
|
+
console.log(chalk.dim(' run ') + chalk.cyan('pushto doctor') + chalk.dim(' to see the biggest files.'));
|
|
184
|
+
process.exit(1);
|
|
185
|
+
}
|
|
82
186
|
spinner.text = `uploading ${sizeMB}MB...`;
|
|
83
|
-
// Upload to the deploy endpoint
|
|
187
|
+
// Upload to the deploy endpoint (extended timeout for large projects)
|
|
84
188
|
const res = await api(`/cli/projects/${slug}/upload`, {
|
|
85
189
|
method: 'POST',
|
|
86
190
|
headers: {
|
|
87
191
|
'Content-Type': 'application/zip',
|
|
88
192
|
},
|
|
89
193
|
body: new Uint8Array(zipBuffer),
|
|
194
|
+
signal: deploySignal(),
|
|
90
195
|
});
|
|
91
196
|
if (!res.ok) {
|
|
92
197
|
const data = await safeJson(res);
|
|
@@ -94,17 +199,147 @@ export const deploy = async () => {
|
|
|
94
199
|
process.exit(1);
|
|
95
200
|
}
|
|
96
201
|
const data = await safeJson(res);
|
|
97
|
-
|
|
98
|
-
//
|
|
202
|
+
// Don't trust the server's `data.message` here — it currently says
|
|
203
|
+
// "v1 live" even though for container apps, the build hasn't run yet.
|
|
204
|
+
// What we know for sure at this point is: the bundle uploaded.
|
|
205
|
+
spinner.succeed(chalk.green(`> v${data.deployment.version} uploaded (${data.deployment.fileCount} files)`));
|
|
206
|
+
if (prep.kind === 'artifact') {
|
|
207
|
+
prep.cleanup();
|
|
208
|
+
if (prep.typeWarnings) {
|
|
209
|
+
console.log('');
|
|
210
|
+
console.log(chalk.yellow(' heads up: your types have errors. the site is live and runs exactly like dev mode.'));
|
|
211
|
+
const tail = prep.typeWarnings.trim().split('\n').slice(-15).join('\n');
|
|
212
|
+
console.log(chalk.dim(tail.replace(/^/gm, ' ')));
|
|
213
|
+
console.log(chalk.dim(' fix them when you are ready. npm run build shows the full list.'));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
let outcome = data.container ? 'container' : 'failed';
|
|
217
|
+
let failureDetail = null;
|
|
218
|
+
let finalUrl = data.url;
|
|
219
|
+
let containerDeployed = data.container != null;
|
|
220
|
+
// The deploy route's build duration — the upload response's number is
|
|
221
|
+
// just the upload time, and the summary box printing "deployed in 2s"
|
|
222
|
+
// for a 90-second container build was a lie by omission.
|
|
223
|
+
let containerBuildDuration = null;
|
|
224
|
+
if (!data.container) {
|
|
225
|
+
// Try dynamic deploy — server will return 403 if it's a free tier
|
|
226
|
+
// user (static-only) or 200 with no container if it's a static site.
|
|
227
|
+
const deploySpinner = ora('detecting framework...').start();
|
|
228
|
+
try {
|
|
229
|
+
const deployRes = await api(`/cli/projects/${slug}/deploy`, {
|
|
230
|
+
method: 'POST',
|
|
231
|
+
headers: { 'Content-Type': 'application/json' },
|
|
232
|
+
body: JSON.stringify({
|
|
233
|
+
commitHash: git.hash,
|
|
234
|
+
commitMessage: git.message,
|
|
235
|
+
branch: git.branch,
|
|
236
|
+
builtFramework: prep.kind === 'artifact' ? prep.framework : undefined,
|
|
237
|
+
}),
|
|
238
|
+
signal: deploySignal(),
|
|
239
|
+
});
|
|
240
|
+
if (deployRes.ok) {
|
|
241
|
+
const deployData = await safeJson(deployRes);
|
|
242
|
+
if (deployData.container) {
|
|
243
|
+
outcome = 'container';
|
|
244
|
+
containerDeployed = true;
|
|
245
|
+
finalUrl = deployData.url ?? finalUrl;
|
|
246
|
+
const fw = deployData.deployment?.framework ?? 'dynamic';
|
|
247
|
+
const dur = deployData.deployment?.buildDuration ?? 0;
|
|
248
|
+
containerBuildDuration = deployData.deployment?.buildDuration ?? null;
|
|
249
|
+
deploySpinner.succeed(chalk.green(`> deployed as ${fw} (${dur}s)`));
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
outcome = 'static';
|
|
253
|
+
const label = prep.kind === 'artifact' ? `${prep.framework} build` : 'static site';
|
|
254
|
+
deploySpinner.succeed(chalk.green(`> ${label} live`));
|
|
255
|
+
if (deployData.message && deployData.message.includes('container was stopped')) {
|
|
256
|
+
console.log(chalk.yellow(` ${deployData.message}`));
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else if (deployRes.status === 403) {
|
|
261
|
+
// After the server's detect-before-gate reorder, 403 means one
|
|
262
|
+
// thing: genuinely dynamic project, free tier. Printing static
|
|
263
|
+
// success here was a lie (raw server source served as files).
|
|
264
|
+
const gateData = await safeJson(deployRes);
|
|
265
|
+
outcome = 'failed';
|
|
266
|
+
failureDetail = gateData.error ?? 'dynamic deploys are a paid feature.';
|
|
267
|
+
deploySpinner.fail(chalk.red('> this project needs a server'));
|
|
268
|
+
}
|
|
269
|
+
else if (deployRes.status === 504) {
|
|
270
|
+
// Server gave up waiting after 10 minutes, but the deploy-agent
|
|
271
|
+
// is still processing the build. Show a non-failure message and
|
|
272
|
+
// exit 0 — the user can poll the dashboard for completion.
|
|
273
|
+
outcome = 'still-building';
|
|
274
|
+
deploySpinner.warn(chalk.yellow('> still building — taking longer than usual'));
|
|
275
|
+
}
|
|
276
|
+
else if (deployRes.status === 409) {
|
|
277
|
+
// Server refused to start a second concurrent build for the same
|
|
278
|
+
// version (another `pushto deploy` is already mid-build). Treat
|
|
279
|
+
// as a non-failure — the previous build will land any moment.
|
|
280
|
+
// Server includes `stillBuilding: true` for parity with 504.
|
|
281
|
+
const conflictData = await safeJson(deployRes);
|
|
282
|
+
outcome = 'still-building';
|
|
283
|
+
deploySpinner.warn(chalk.yellow(`> ${conflictData.error ?? 'a build for this version is already in progress'}`));
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
// Real failure (build failed, container crashed, etc.)
|
|
287
|
+
const errData = await safeJson(deployRes);
|
|
288
|
+
outcome = 'failed';
|
|
289
|
+
failureDetail = errData.error ?? `server returned ${deployRes.status}`;
|
|
290
|
+
deploySpinner.fail(chalk.red(`> deploy failed`));
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
outcome = 'failed';
|
|
295
|
+
failureDetail = err instanceof Error ? err.message : 'network error during deploy';
|
|
296
|
+
deploySpinner.fail(chalk.red(`> deploy failed`));
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// Surface failures honestly — no success box for a broken deploy.
|
|
300
|
+
if (outcome === 'failed') {
|
|
301
|
+
console.log('');
|
|
302
|
+
if (failureDetail) {
|
|
303
|
+
console.log(chalk.red(' reason: ') + chalk.dim(failureDetail));
|
|
304
|
+
}
|
|
305
|
+
console.log('');
|
|
306
|
+
console.log(chalk.dim(' see what went wrong:'));
|
|
307
|
+
console.log(` ${chalk.cyan('pushto logs')}`);
|
|
308
|
+
console.log(` ${chalk.cyan(`https://pushto.host/dashboard/projects/${slug}`)}`);
|
|
309
|
+
console.log('');
|
|
310
|
+
process.exit(1);
|
|
311
|
+
}
|
|
312
|
+
// Build's still going — exit 0 with a clear "check the dashboard" hint.
|
|
313
|
+
// This isn't a failure path: the bundle uploaded, the agent claimed it,
|
|
314
|
+
// and the build is just slower than the route's poll budget. The
|
|
315
|
+
// dashboard will reflect LIVE/FAILED whenever the agent finishes.
|
|
316
|
+
if (outcome === 'still-building') {
|
|
317
|
+
console.log('');
|
|
318
|
+
console.log(chalk.yellow(' your deploy is taking a while.'));
|
|
319
|
+
console.log(chalk.dim(' the build is still running — we just stopped waiting on it.'));
|
|
320
|
+
console.log('');
|
|
321
|
+
console.log(chalk.dim(' watch it finish:'));
|
|
322
|
+
console.log(` ${chalk.cyan(`pushto logs`)}`);
|
|
323
|
+
console.log(` ${chalk.cyan(`https://pushto.host/dashboard/projects/${slug}`)}`);
|
|
324
|
+
console.log('');
|
|
325
|
+
// Exit 0 — the deploy isn't broken; we just timed out the wait.
|
|
326
|
+
// CI scripts that check exit code shouldn't treat this as a failure.
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
// Build the summary box. Container deploys report the build step's real
|
|
330
|
+
// duration; the upload response's number only covers the upload.
|
|
99
331
|
const version = `v${data.deployment.version}`;
|
|
100
|
-
const duration = `${data.deployment.buildDuration}s`;
|
|
332
|
+
const duration = `${containerBuildDuration ?? data.deployment.buildDuration}s`;
|
|
101
333
|
const fileCount = data.deployment.fileCount;
|
|
102
|
-
const url =
|
|
334
|
+
const url = finalUrl;
|
|
103
335
|
const commitLine = git.hash ? `${git.hash} ${git.message ?? ''}` : null;
|
|
104
336
|
const lines = [
|
|
105
337
|
`${chalk.green(version)} deployed in ${chalk.cyan(duration)}`,
|
|
106
338
|
`${chalk.dim(String(fileCount) + ' files')} ${chalk.dim('•')} ${chalk.cyan(url)}`,
|
|
107
339
|
];
|
|
340
|
+
if (containerDeployed) {
|
|
341
|
+
lines.push(chalk.dim('container running'));
|
|
342
|
+
}
|
|
108
343
|
if (commitLine) {
|
|
109
344
|
lines.push(chalk.dim(commitLine));
|
|
110
345
|
}
|
|
@@ -129,8 +364,49 @@ export const deploy = async () => {
|
|
|
129
364
|
}
|
|
130
365
|
console.log(bot);
|
|
131
366
|
console.log('');
|
|
367
|
+
// Auto-configure cron jobs from .pushto file
|
|
368
|
+
const pushtoPath = path.join(process.cwd(), '.pushto');
|
|
369
|
+
if (fs.existsSync(pushtoPath)) {
|
|
370
|
+
try {
|
|
371
|
+
const pushtoConfig = JSON.parse(fs.readFileSync(pushtoPath, 'utf-8'));
|
|
372
|
+
const cronJobs = pushtoConfig.cron;
|
|
373
|
+
if (Array.isArray(cronJobs) && cronJobs.length > 0) {
|
|
374
|
+
for (const job of cronJobs) {
|
|
375
|
+
if (!job.name || !job.url || !job.schedule)
|
|
376
|
+
continue;
|
|
377
|
+
const cronSpinner = ora(`setting up cron: ${job.name}...`).start();
|
|
378
|
+
try {
|
|
379
|
+
const cronRes = await api(`/cli/projects/${slug}/cron`, {
|
|
380
|
+
method: 'PUT',
|
|
381
|
+
headers: { 'Content-Type': 'application/json' },
|
|
382
|
+
body: JSON.stringify({
|
|
383
|
+
name: job.name,
|
|
384
|
+
url: job.url,
|
|
385
|
+
schedule: job.schedule,
|
|
386
|
+
method: job.method ?? 'POST',
|
|
387
|
+
...(typeof job.secret === 'string' && job.secret ? { secret: job.secret } : {}),
|
|
388
|
+
}),
|
|
389
|
+
});
|
|
390
|
+
if (cronRes.ok) {
|
|
391
|
+
const cronData = await safeJson(cronRes);
|
|
392
|
+
cronSpinner.succeed(chalk.green(`> cron "${job.name}" ${cronData.action ?? 'configured'} (${job.schedule})`));
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
cronSpinner.warn(chalk.yellow(`> cron "${job.name}" skipped (non-blocking)`));
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
cronSpinner.warn(chalk.yellow(`> cron "${job.name}" skipped (non-blocking)`));
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
catch { /* .pushto parse failed — ignore */ }
|
|
405
|
+
}
|
|
132
406
|
}
|
|
133
407
|
catch (err) {
|
|
408
|
+
if (prep.kind === 'artifact')
|
|
409
|
+
prep.cleanup();
|
|
134
410
|
const msg = err instanceof Error ? err.message : 'unknown error';
|
|
135
411
|
spinner.fail(chalk.red(`> deploy failed: ${msg}`));
|
|
136
412
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,MAAM,QAAa,OAAO,CAAC,IAAI,CA2c3C,CAAC"}
|