Files
calendar/apps/web/scripts/create-sentry-release.js

44 lines
1.3 KiB
JavaScript

const { execSync } = require("node:child_process");
const CLIENT_FILES_PATH = ".next/static/chunks";
try {
// Continue if required any env vars are not set
const requiredEnvVars = ["SENTRY_AUTH_TOKEN", "SENTRY_ORG", "SENTRY_PROJECT"];
const missingEnvVars = requiredEnvVars.filter((envVar) => !process.env[envVar]);
if (missingEnvVars.length > 0) {
console.log(
`Skipping release creation as required environment variables are not set: ${missingEnvVars.join(", ")}`
);
process.exit(0);
}
const release = execSync("git rev-parse HEAD").toString().trim();
// Add release
execSync(`sentry-cli releases new ${release}`, { stdio: "inherit" });
// Add git commits
execSync(`sentry-cli releases set-commits ${release} --auto --ignore-missing`, {
stdio: "inherit",
});
// Inject Debug IDs
execSync(`sentry-cli sourcemaps inject ${CLIENT_FILES_PATH}`, { stdio: "inherit" });
// Upload with release flag
execSync(
`sentry-cli sourcemaps upload ${CLIENT_FILES_PATH} --validate --ext=js --ext=map --release=${release}`,
{
stdio: "inherit",
env: process.env,
}
);
// Finalize the release
execSync(`sentry-cli releases finalize ${release}`, { stdio: "inherit" });
} catch (err) {
console.error("Sentry cli execution failed:", err);
process.exit(1);
}