d18ada4ee7
Docker Publish / docker (web, apps/web/Dockerfile, web) (push) Failing after 0s
Docker Publish / docker (api, apps/api/Dockerfile, api) (push) Failing after 1s
Publish Extension / detect-version (push) Has been skipped
Publish Extension / submit (push) Has been cancelled
59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
import { existsSync } from 'node:fs'
|
|
import { createRequire } from 'node:module'
|
|
import path from 'node:path'
|
|
import process from 'node:process'
|
|
|
|
const require = createRequire(import.meta.url)
|
|
const pkg = require('../package.json')
|
|
|
|
const requiredEnvKeys = ['SENTRY_AUTH_TOKEN', 'SENTRY_ORG', 'SENTRY_PROJECT', 'SENTRY_URL']
|
|
const missingEnvKeys = requiredEnvKeys.filter((key) => !process.env[key]?.trim())
|
|
|
|
if (missingEnvKeys.length > 0) {
|
|
console.error(`Missing required GlitchTip environment variables: ${missingEnvKeys.join(', ')}`)
|
|
process.exit(1)
|
|
}
|
|
|
|
const projectRoot = path.resolve(import.meta.dirname, '..')
|
|
const outputDir = path.join(projectRoot, 'out')
|
|
if (!existsSync(outputDir)) {
|
|
console.error(`Build output not found at ${outputDir}. Run "pnpm run build" first.`)
|
|
process.exit(1)
|
|
}
|
|
|
|
const { default: SentryCli } = await import('@sentry/cli')
|
|
|
|
const release = process.env.SENTRY_RELEASE?.trim() || `vidbee-desktop@${pkg.version}`
|
|
const cli = new SentryCli(undefined, {
|
|
authToken: process.env.SENTRY_AUTH_TOKEN,
|
|
org: process.env.SENTRY_ORG,
|
|
project: process.env.SENTRY_PROJECT,
|
|
url: process.env.SENTRY_URL,
|
|
vcsRemote: 'origin'
|
|
})
|
|
|
|
try {
|
|
console.info(`Creating release ${release}`)
|
|
await cli.releases.new(release)
|
|
await cli.releases.setCommits(release, {
|
|
auto: true,
|
|
ignoreMissing: true
|
|
})
|
|
await cli.releases.uploadSourceMaps(release, {
|
|
include: [outputDir],
|
|
rewrite: true,
|
|
urlPrefix: '~/'
|
|
})
|
|
await cli.releases.finalize(release)
|
|
console.info(`Uploaded source maps for ${release}`)
|
|
} catch (error) {
|
|
const message = error instanceof Error ? error.message : String(error)
|
|
console.error(`Failed to upload GlitchTip source maps: ${message}`)
|
|
if (message.includes('download the sentry-cli binary')) {
|
|
console.error(
|
|
'If pnpm blocked @sentry/cli postinstall, run "pnpm approve-builds" and allow @sentry/cli.'
|
|
)
|
|
}
|
|
process.exit(1)
|
|
}
|