@vaharoni/devops 1.2.1 → 1.2.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/cli/common.d.ts +3 -2
- package/dist/cli/common.d.ts.map +1 -1
- package/dist/cli/common.js +6 -2
- package/dist/cli/extensions/prisma.js +1 -1
- package/dist/libs/cloudrun-helpers.d.ts.map +1 -1
- package/dist/libs/cloudrun-helpers.js +5 -4
- package/package.json +1 -1
- package/src/cli/common.ts +8 -3
- package/src/cli/extensions/prisma.ts +1 -1
- package/src/libs/cloudrun-helpers.ts +6 -5
package/dist/cli/common.d.ts
CHANGED
|
@@ -62,8 +62,9 @@ export declare class CommandExecutor {
|
|
|
62
62
|
env?: object;
|
|
63
63
|
}): number;
|
|
64
64
|
/** Should be used for CLI commands intended to be used locally. Provides interactivity. Unlike exec(), stdout is not returned. */
|
|
65
|
-
spawn({ env }?: {
|
|
66
|
-
env?:
|
|
65
|
+
spawn({ env, pipeStdoutTo }?: {
|
|
66
|
+
env?: object;
|
|
67
|
+
pipeStdoutTo?: "stderr";
|
|
67
68
|
}): Promise<unknown>;
|
|
68
69
|
_prepareFullCommand(): string;
|
|
69
70
|
_getProcessEnv(envOverride?: {}): {
|
package/dist/cli/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/cli/common.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/common.js
CHANGED
|
@@ -144,17 +144,21 @@ export class CommandExecutor {
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
/** Should be used for CLI commands intended to be used locally. Provides interactivity. Unlike exec(), stdout is not returned. */
|
|
147
|
-
spawn({ env
|
|
147
|
+
spawn({ env, pipeStdoutTo } = {}) {
|
|
148
148
|
this._checkEnvYamlFiles();
|
|
149
149
|
const fullCommand = this._prepareFullCommand();
|
|
150
150
|
const envToUse = this._getProcessEnv(env);
|
|
151
|
+
const stdio = pipeStdoutTo === "stderr" ? ["inherit", "pipe", "inherit"] : "inherit";
|
|
151
152
|
return new Promise((resolve) => {
|
|
152
153
|
try {
|
|
153
154
|
const childProcess = spawn(fullCommand, {
|
|
154
|
-
stdio
|
|
155
|
+
stdio,
|
|
155
156
|
env: envToUse,
|
|
156
157
|
shell: true,
|
|
157
158
|
});
|
|
159
|
+
if (pipeStdoutTo === "stderr") {
|
|
160
|
+
childProcess.stdout?.pipe(process.stderr);
|
|
161
|
+
}
|
|
158
162
|
childProcess.on("close", (code) => {
|
|
159
163
|
if (code !== 0) {
|
|
160
164
|
console.error(chalk.red(`Process exited with code ${code}`));
|
|
@@ -18,6 +18,6 @@ EXAMPLES
|
|
|
18
18
|
${keyExamples}
|
|
19
19
|
`;
|
|
20
20
|
async function run(cmdObj) {
|
|
21
|
-
cmdObj.executorFromEnv(`${execShPath} db prisma ${cmdObj.args.join(" ")}`, { checkEnvYaml: false }).spawn();
|
|
21
|
+
cmdObj.executorFromEnv(`${execShPath} db bunx prisma ${cmdObj.args.join(" ")}`, { checkEnvYaml: false }).spawn();
|
|
22
22
|
}
|
|
23
23
|
export const prisma = { oneLiner, keyExamples, run };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudrun-helpers.d.ts","sourceRoot":"","sources":["../../src/libs/cloudrun-helpers.ts"],"names":[],"mappings":"AA0CA,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cloudrun-helpers.d.ts","sourceRoot":"","sources":["../../src/libs/cloudrun-helpers.ts"],"names":[],"mappings":"AA0CA,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,iBA2B3C;AAED,wBAAsB,MAAM,CAAC,EAC3B,KAAK,EACL,GAAG,EACH,GAAG,EACH,MAAM,EACN,UAAe,EACf,oBAA4B,EAC5B,GAAY,EACZ,MAAgB,EAChB,YAAgB,EAChB,YAAgB,EAChB,OAAe,EACf,SAAc,GACf,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,iBAsBA"}
|
|
@@ -44,18 +44,19 @@ export async function buildDev(image) {
|
|
|
44
44
|
const sha = randomBytes(12).toString("hex");
|
|
45
45
|
const buildDir = new CommandExecutor(`devops prep-build ${image}`, {
|
|
46
46
|
env,
|
|
47
|
+
quiet: true
|
|
47
48
|
}).exec().trim();
|
|
48
49
|
const tag = containerRegistryRepoPath(image, env, sha);
|
|
49
50
|
console.warn(`Building ${tag} from ${buildDir}`);
|
|
50
|
-
await new CommandExecutor(`docker build --platform linux/amd64 -t ${tag} ${buildDir} --build-arg MONOREPO_ENV=${env}`, { env }).spawn();
|
|
51
|
+
await new CommandExecutor(`docker build --platform linux/amd64 -t ${tag} ${buildDir} --build-arg MONOREPO_ENV=${env}`, { env }).spawn({ pipeStdoutTo: "stderr" });
|
|
51
52
|
console.warn(`Pushing ${tag}`);
|
|
52
|
-
await new CommandExecutor(`docker push ${tag}`, { env }).spawn();
|
|
53
|
+
await new CommandExecutor(`docker push ${tag}`, { env }).spawn({ pipeStdoutTo: "stderr" });
|
|
53
54
|
console.warn(`\n✅ Built and pushed ${tag}\n`);
|
|
54
55
|
console.warn('Run "devops cloudrun deploy" next. For example:');
|
|
55
|
-
console.warn(chalk.blue(`./devops cloudrun deploy ${image} ${sha} --env ${env} --allow-unauthenticated --region us-east1 --forward-env ENV1,ENV2 --service-account RUNTIME_SA`));
|
|
56
|
+
console.warn(chalk.blue(`./devops cloudrun deploy ${image} ${sha} --env ${env} --allow-unauthenticated --region us-east1 --forward-env ENV1,ENV2 -- --service-account RUNTIME_SA`));
|
|
56
57
|
console.warn(chalk.yellow(`\n\nRUNTIME_SA is the name of the service account used to run the Cloud Run service.`));
|
|
57
58
|
console.warn(chalk.yellow(`Find it with "gcloud iam service-accounts list"\n`));
|
|
58
|
-
console.log(
|
|
59
|
+
console.log(sha);
|
|
59
60
|
}
|
|
60
61
|
export async function deploy({ image, env, sha, region, forwardEnv = [], allowUnauthenticated = false, cpu = "0.25", memory = "256Mi", minInstances = 0, maxInstances = 1, timeout = "60s", extraArgs = "", }) {
|
|
61
62
|
verifyCloudrunImage(image);
|
package/package.json
CHANGED
package/src/cli/common.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { execSync, spawn } from "child_process";
|
|
2
|
+
import { execSync, spawn, type StdioOptions } from "child_process";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import { globSync } from "glob";
|
|
5
5
|
import { allSupportedEnvs } from "../libs/k8s-constants";
|
|
@@ -222,18 +222,23 @@ export class CommandExecutor {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
/** Should be used for CLI commands intended to be used locally. Provides interactivity. Unlike exec(), stdout is not returned. */
|
|
225
|
-
spawn({ env
|
|
225
|
+
spawn({ env, pipeStdoutTo }: { env?: object; pipeStdoutTo?: "stderr" } = {}) {
|
|
226
226
|
this._checkEnvYamlFiles();
|
|
227
227
|
const fullCommand = this._prepareFullCommand();
|
|
228
228
|
const envToUse = this._getProcessEnv(env);
|
|
229
|
+
const stdio: StdioOptions = pipeStdoutTo === "stderr" ? ["inherit", "pipe", "inherit"] : "inherit";
|
|
229
230
|
return new Promise((resolve) => {
|
|
230
231
|
try {
|
|
231
232
|
const childProcess = spawn(fullCommand, {
|
|
232
|
-
stdio
|
|
233
|
+
stdio,
|
|
233
234
|
env: envToUse,
|
|
234
235
|
shell: true,
|
|
235
236
|
});
|
|
236
237
|
|
|
238
|
+
if (pipeStdoutTo === "stderr") {
|
|
239
|
+
childProcess.stdout?.pipe(process.stderr);
|
|
240
|
+
}
|
|
241
|
+
|
|
237
242
|
childProcess.on("close", (code) => {
|
|
238
243
|
if (code !== 0) {
|
|
239
244
|
console.error(chalk.red(`Process exited with code ${code}`));
|
|
@@ -46,7 +46,8 @@ export async function buildDev(image: string) {
|
|
|
46
46
|
const sha = randomBytes(12).toString("hex");
|
|
47
47
|
|
|
48
48
|
const buildDir = new CommandExecutor(`devops prep-build ${image}`, {
|
|
49
|
-
env,
|
|
49
|
+
env,
|
|
50
|
+
quiet: true
|
|
50
51
|
}).exec().trim();
|
|
51
52
|
|
|
52
53
|
const tag = containerRegistryRepoPath(image, env, sha);
|
|
@@ -55,17 +56,17 @@ export async function buildDev(image: string) {
|
|
|
55
56
|
await new CommandExecutor(
|
|
56
57
|
`docker build --platform linux/amd64 -t ${tag} ${buildDir} --build-arg MONOREPO_ENV=${env}`,
|
|
57
58
|
{ env }
|
|
58
|
-
).spawn();
|
|
59
|
+
).spawn({ pipeStdoutTo: "stderr" });
|
|
59
60
|
|
|
60
61
|
console.warn(`Pushing ${tag}`);
|
|
61
|
-
await new CommandExecutor(`docker push ${tag}`, { env }).spawn();
|
|
62
|
+
await new CommandExecutor(`docker push ${tag}`, { env }).spawn({ pipeStdoutTo: "stderr" });
|
|
62
63
|
|
|
63
64
|
console.warn(`\n✅ Built and pushed ${tag}\n`);
|
|
64
65
|
console.warn('Run "devops cloudrun deploy" next. For example:')
|
|
65
|
-
console.warn(chalk.blue(`./devops cloudrun deploy ${image} ${sha} --env ${env} --allow-unauthenticated --region us-east1 --forward-env ENV1,ENV2 --service-account RUNTIME_SA`));
|
|
66
|
+
console.warn(chalk.blue(`./devops cloudrun deploy ${image} ${sha} --env ${env} --allow-unauthenticated --region us-east1 --forward-env ENV1,ENV2 -- --service-account RUNTIME_SA`));
|
|
66
67
|
console.warn(chalk.yellow(`\n\nRUNTIME_SA is the name of the service account used to run the Cloud Run service.`));
|
|
67
68
|
console.warn(chalk.yellow(`Find it with "gcloud iam service-accounts list"\n`));
|
|
68
|
-
console.log(
|
|
69
|
+
console.log(sha);
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
export async function deploy({
|