mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-25 03:20:23 +01:00
ci - job-publish - publish source+sourcemaps to sentry if new release
This commit is contained in:
parent
6029ebf0ed
commit
92dd2b3218
@ -203,6 +203,9 @@ jobs:
|
||||
- run:
|
||||
name: build:announce
|
||||
command: ./development/metamaskbot-build-announce.js
|
||||
- run:
|
||||
name: sentry sourcemaps upload
|
||||
command: npm run sentry:publish
|
||||
|
||||
test-unit:
|
||||
docker:
|
||||
|
55
development/sentry-publish.js
Normal file
55
development/sentry-publish.js
Normal file
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env node
|
||||
const pify = require('pify')
|
||||
const exec = pify(require('child_process').exec, { multiArgs: true })
|
||||
const VERSION = require('../dist/chrome/manifest.json').version
|
||||
|
||||
start().catch(console.error)
|
||||
|
||||
async function start(){
|
||||
const authWorked = await checkIfAuthWorks()
|
||||
if (!authWorked) {
|
||||
console.log(`Sentry auth failed...`)
|
||||
}
|
||||
// check if version exists or not
|
||||
const versionAlreadyExists = await checkIfVersionExists()
|
||||
// abort if versions exists
|
||||
if (versionAlreadyExists) {
|
||||
console.log(`Version "${VERSION}" already exists on Sentry, aborting sourcemap upload.`)
|
||||
return
|
||||
}
|
||||
|
||||
// create sentry release
|
||||
console.log(`creating Sentry release for "${VERSION}"...`)
|
||||
await exec(`sentry-cli releases --org 'metamask' --project 'metamask' new ${VERSION}`)
|
||||
console.log(`removing any existing files from Sentry release "${VERSION}"...`)
|
||||
await exec(`sentry-cli releases --org 'metamask' --project 'metamask' files ${VERSION} delete --all`)
|
||||
// upload sentry source and sourcemaps
|
||||
console.log(`uploading source files Sentry release "${VERSION}"...`)
|
||||
await exec(`for FILEPATH in ./dist/chrome/*.js; do [ -e $FILEPATH ] || continue; export FILE=\`basename $FILEPATH\` && echo uploading $FILE && sentry-cli releases --org 'metamask' --project 'metamask' files ${VERSION} upload $FILEPATH metamask/$FILE; done;`)
|
||||
console.log(`uploading sourcemaps Sentry release "${VERSION}"...`)
|
||||
await exec(`sentry-cli releases --org 'metamask' --project 'metamask' files ${VERSION} upload-sourcemaps ./dist/sourcemaps/ --url-prefix 'sourcemaps'`)
|
||||
console.log('all done!')
|
||||
}
|
||||
|
||||
async function checkIfAuthWorks() {
|
||||
const itWorked = await doesNotFail(async () => {
|
||||
await exec(`sentry-cli releases --org 'metamask' --project 'metamask' list`)
|
||||
})
|
||||
return itWorked
|
||||
}
|
||||
|
||||
async function checkIfVersionExists() {
|
||||
const versionAlreadyExists = await doesNotFail(async () => {
|
||||
await exec(`sentry-cli releases --org 'metamask' --project 'metamask' info ${VERSION}`)
|
||||
})
|
||||
return versionAlreadyExists
|
||||
}
|
||||
|
||||
async function doesNotFail(asyncFn) {
|
||||
try {
|
||||
await asyncFn()
|
||||
return true
|
||||
} catch (err) {
|
||||
return false
|
||||
}
|
||||
}
|
8
package-lock.json
generated
8
package-lock.json
generated
@ -188,7 +188,7 @@
|
||||
"integrity": "sha1-AtD3eBwe5eG+WkMSoyX76LGzcjE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"https-proxy-agent": "2.2.0",
|
||||
"https-proxy-agent": "2.2.1",
|
||||
"node-fetch": "1.7.3",
|
||||
"progress": "2.0.0",
|
||||
"proxy-from-env": "1.0.0"
|
||||
@ -213,9 +213,9 @@
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.0.tgz",
|
||||
"integrity": "sha512-uUWcfXHvy/dwfM9bqa6AozvAjS32dZSTUYd/4SEpYKRg6LEcPLshksnQYRudM9AyNvUARMfAg5TLjUDyX/K4vA==",
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
|
||||
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"agent-base": "4.2.0",
|
||||
|
@ -31,13 +31,7 @@
|
||||
"test:mascara:build:background": "browserify mascara/src/background.js -o dist/mascara/background.js",
|
||||
"test:mascara:build:tests": "browserify test/integration/lib/first-time.js -o dist/mascara/tests.js",
|
||||
"ganache:start": "ganache-cli -m 'phrase upgrade clock rough situate wedding elder clever doctor stamp excess tent'",
|
||||
"sentry": "export RELEASE=`cat app/manifest.json| jq -r .version` && npm run sentry:release && npm run sentry:upload",
|
||||
"sentry:release": "npm run sentry:release:new && npm run sentry:release:clean",
|
||||
"sentry:release:new": "sentry-cli releases --org 'metamask' --project 'metamask' new $RELEASE",
|
||||
"sentry:release:clean": "sentry-cli releases --org 'metamask' --project 'metamask' files $RELEASE delete --all",
|
||||
"sentry:upload": "npm run sentry:upload:source && npm run sentry:upload:maps",
|
||||
"sentry:upload:source": "for FILEPATH in ./dist/chrome/scripts/*.js; do [ -e $FILEPATH ] || continue; export FILE=`basename $FILEPATH` && echo uploading $FILE && sentry-cli releases --org 'metamask' --project 'metamask' files $RELEASE upload $FILEPATH metamask/scripts/$FILE; done;",
|
||||
"sentry:upload:maps": "sentry-cli releases --org 'metamask' --project 'metamask' files $RELEASE upload-sourcemaps ./dist/sourcemaps/ --url-prefix 'sourcemaps' --rewrite",
|
||||
"sentry:publish": "node ./development/sentry-publish.js",
|
||||
"lint": "gulp lint",
|
||||
"lint:fix": "gulp lint:fix",
|
||||
"ui": "npm run test:flat:build:states && beefy development/ui-dev.js:bundle.js --live --open --index=./development/index.html --cwd ./",
|
||||
|
Loading…
Reference in New Issue
Block a user