-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathsentry-release.ts
46 lines (35 loc) · 2.03 KB
/
sentry-release.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import { execSync } from "child_process";
const scope = process.argv[2];
if (!scope) throw new Error("Please provide a scope");
const uploadPath = process.argv[3];
if (!uploadPath) throw new Error("Please provide a uploadPath");
let version = process.argv[4];
if (!version) throw new Error("Please provide a version");
version = version.replace(/\//g, "-");
const environment = process.argv[5];
if (!environment) throw new Error("Please provide a environment");
const authToken = process.argv[6];
if (!authToken) throw new Error("Please provide a authToken");
const org = "dzcode";
const project = scope;
console.log(`Creating a Sentry release draft ...`);
const releaseScript = `sentry-cli --auth-token ${authToken} releases --org ${org} new --project ${project} ${scope}@${version}`;
console.log(`running:\n${releaseScript}`);
const releaseScriptStdout = String(execSync(releaseScript));
console.log(releaseScriptStdout);
console.log(`Uploading JS/Map files to the created Sentry release ...`);
const uploadScript = `sentry-cli --auth-token ${authToken} releases --org ${org} --project ${project} files ${scope}@${version} upload-sourcemaps ${uploadPath}`;
console.log(`running:\n${uploadScript}`);
const uploadScriptStdout = String(execSync(uploadScript));
console.log(uploadScriptStdout);
console.log(`Finalizing the created Sentry draft release`);
const finalizeScript = `sentry-cli --auth-token ${authToken} releases --org ${org} --project ${project} finalize ${scope}@${version}`;
console.log(`running:\n${finalizeScript}`);
const finalizeScriptStdout = String(execSync(finalizeScript));
console.log(finalizeScriptStdout);
console.log(`Linking a new deployment to the created Sentry release ...`);
const deployScript = `sentry-cli --auth-token ${authToken} releases --org ${org} deploys ${scope}@${version} new -e ${environment}`;
console.log(`running:\n${deployScript}`);
const deployScriptStdout = String(execSync(deployScript));
console.log(deployScriptStdout);
console.log(`Done creating, publishing and deploying the Sentry release ${scope}@${version}`);