Skip to content

Commit 4bb83e1

Browse files
authored
feat: Add craft for releases (#1589)
1 parent 97ca5b5 commit 4bb83e1

29 files changed

+734
-118
lines changed

.craft.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
minVersion: '0.6.0'
2+
github:
3+
owner: getsentry
4+
repo: sentry-javascript
5+
changelogPolicy: simple
6+
preReleaseCommand: bash scripts/craft-pre-release.sh
7+
targets:
8+
- name: npm
9+
- name: github
10+
includeNames: /^sentry-.*$/
11+
- name: gcs
12+
includeNames: /^bundle\..*$/
13+
bucket: sentry-js-sdk
14+
paths:
15+
- path: /{{version}}/
16+
metadata:
17+
cacheControl: 'public, max-age=31536000'
18+
- name: registry
19+
type: sdk
20+
includeNames: /^sentry-browser-.*\.tgz$/
21+
config:
22+
canonical: 'npm:@sentry/browser'
23+
- name: registry
24+
type: sdk
25+
includeNames: /^sentry-node-.*\.tgz$/
26+
config:
27+
canonical: 'npm:@sentry/node'

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ lerna-debug.log
2626
.rpt2_cache
2727

2828
docs
29+
lint-results.json

.travis.yml

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,51 +16,48 @@ cache:
1616

1717
matrix:
1818
include:
19-
- name: '@sentry/packages - danger'
19+
- name: '@sentry/packages - build + lint + test + codecov + danger [node v8]'
2020
node_js: '8'
21-
script: .travis/danger.sh
22-
- name: '@sentry/packages - lint'
21+
script: scripts/danger.sh
22+
- name: '@sentry/packages - pack and zeus upload'
2323
node_js: '8'
24-
script: .travis/lint.sh
24+
script: scripts/pack-and-upload.sh || [[ ! "$TRAVIS_BRANCH" =~ ^release/ ]]
2525
- name: '@sentry/packages - build and test [node v6]'
2626
node_js: '6'
27-
script: .travis/test.sh
28-
- name: '@sentry/packages - build and test [node v8]'
29-
node_js: '8'
30-
script: .travis/test.sh
27+
script: scripts/test.sh
3128
- name: '@sentry/packages - build and test [node v10]'
3229
node_js: '10'
33-
script: .travis/test.sh
30+
script: scripts/test.sh
3431
- name: '@sentry/browser - integration tests'
3532
node_js: '8'
3633
addons:
3734
chrome: stable
3835
firefox: latest
3936
sauce_connect: true
40-
script: .travis/integration.sh
37+
script: scripts/integration.sh
4138
- name: 'raven-js - unit and integration tests'
4239
node_js: '8'
4340
addons:
4441
chrome: stable
4542
firefox: latest
46-
script: .travis/raven-js.sh
43+
script: scripts/raven-js.sh
4744
- name: 'raven-js - saucelabs tests'
4845
node_js: '8'
4946
addons:
5047
sauce_connect: true
51-
script: .travis/raven-js-saucelabs.sh
48+
script: scripts/raven-js-saucelabs.sh
5249
- name: 'raven-node [node v4]'
5350
node_js: '4'
54-
script: .travis/raven-node.sh
51+
script: scripts/raven-node.sh
5552
- name: 'raven-node [node v6]'
5653
node_js: '6'
57-
script: .travis/raven-node.sh
54+
script: scripts/raven-node.sh
5855
- name: 'raven-node [node v8]'
5956
node_js: '8'
60-
script: .travis/raven-node.sh
57+
script: scripts/raven-node.sh
6158
- name: 'raven-node [node v10]'
6259
node_js: '10'
63-
script: .travis/raven-node.sh
60+
script: scripts/raven-node.sh
6461

6562
notifications:
6663
webhooks:

.travis/lint.sh

Lines changed: 0 additions & 7 deletions
This file was deleted.

Makefile

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
bump:
22
yarn lerna version --exact --no-git-tag-version --no-push
3+
.PHONY: bump
34

45
prepare-release:
56
yarn clean
67
yarn build
78
yarn lint
89
yarn test
10+
.PHONY: prepare-release
911

1012
publish-npm:
1113
cd packages/browser; npm publish
@@ -16,18 +18,26 @@ publish-npm:
1618
# cd packages/types; npm publish
1719
# cd packages/typescript; npm publish
1820
cd packages/utils; npm publish
21+
.PHONY: publish-npm
1922

2023
publish-cdn:
2124
node scripts/browser-upload-cdn.js
25+
.PHONY: publish-cdn
2226

23-
publish-docs:
24-
node ./node_modules/.bin/typedoc --options ./typedoc.js
27+
build-docs:
28+
rm -rf ./docs
29+
yarn typedoc --options ./typedoc.js
30+
.PHONY: build-docs
31+
32+
publish-docs: build-docs
2533
rm -rf /tmp/sentry-js-docs | true
2634
cp -r ./docs /tmp/sentry-js-docs
2735
git checkout gh-pages
2836
cp -r /tmp/sentry-js-docs/* .
2937
git commit -a -m "meta: Update docs"
3038
git push origin gh-pages
3139
git checkout master
40+
.PHONY: publish-docs
3241

3342
release: bump prepare-release publish-npm publish-cdn
43+
.PHONY: release

dangerfile.ts

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,44 @@
11
import { exec } from 'child_process';
2-
import { danger, message, schedule, warn } from 'danger';
2+
import { danger, fail, message, schedule, warn } from 'danger';
33
import { promisify } from 'util';
4+
import { resolve } from 'path';
5+
import tslint from 'danger-plugin-tslint';
6+
import { prettyResults } from 'danger-plugin-tslint/dist/prettyResults';
7+
8+
const packages = ['browser', 'core', 'hub', 'minimal', 'node', 'types', 'utils'];
49

510
export default async () => {
611
if (!danger.github) {
712
return;
813
}
914

15+
schedule(async () => {
16+
const tsLintResult = (await Promise.all(
17+
packages.map(packageName => {
18+
return new Promise<string>(res => {
19+
tslint({
20+
lintResultsJsonPath: resolve(__dirname, 'packages', packageName, 'lint-results.json'),
21+
handleResults: results => {
22+
if (results.length > 0) {
23+
const formattedResults = prettyResults(results);
24+
res(`TSLint failed: **@sentry/${packageName}**\n\n${formattedResults}`);
25+
} else {
26+
res('');
27+
}
28+
},
29+
});
30+
});
31+
}),
32+
)).filter(str => str.length);
33+
if (tsLintResult.length) {
34+
tsLintResult.forEach(tsLintFail => {
35+
fail(`${tsLintFail}`);
36+
});
37+
} else {
38+
message('✅ TSLint passed');
39+
}
40+
});
41+
1042
const hasChangelog = danger.git.modified_files.indexOf('CHANGELOG.md') !== -1;
1143
const isTrivial = (danger.github.pr.body + danger.github.pr.title).includes('#trivial');
1244

@@ -16,6 +48,6 @@ export default async () => {
1648

1749
schedule(async () => {
1850
const result = (await promisify(exec)('cd packages/browser; yarn size:check')).stdout;
19-
message(`@sentry/browser gzip minified size: ${result.split('\n')[1]}`);
51+
message(`@sentry/browser gzip'ed minified size: ${result.split('\n')[1]}`);
2052
});
2153
};

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"clean": "lerna run --stream clean",
77
"fix": "lerna run --stream --concurrency 1 fix",
88
"lint": "lerna run --stream --concurrency 1 lint",
9+
"lint:json": "lerna run --stream --concurrency 1 lint:tslint:json",
910
"test": "lerna run --stream --concurrency 1 --sort test",
1011
"codecov": "codecov"
1112
},
@@ -30,6 +31,7 @@
3031
"chai": "^4.1.2",
3132
"codecov": "^3.0.2",
3233
"danger": "^4.0.2",
34+
"danger-plugin-tslint": "^2.0.0",
3335
"jest": "^22.4.3",
3436
"karma-sinon": "^1.0.5",
3537
"lerna": "3.4.0",

packages/browser/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"lint": "run-s lint:prettier lint:tslint",
5656
"lint:prettier": "prettier-check '{src,test}/**/*.ts'",
5757
"lint:tslint": "tslint -t stylish -p .",
58+
"lint:tslint:json": "tslint --format json -p . | tee lint-results.json",
5859
"fix": "run-s fix:tslint fix:prettier",
5960
"fix:prettier": "prettier --write '{src,test}/**/*.ts'",
6061
"fix:tslint": "tslint --fix -t stylish -p .",

packages/core/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"lint": "run-s lint:prettier lint:tslint",
3737
"lint:prettier": "prettier-check '{src,test}/**/*.ts'",
3838
"lint:tslint": "tslint -t stylish -p .",
39+
"lint:tslint:json": "tslint --format json -p . | tee lint-results.json",
3940
"fix": "run-s fix:tslint fix:prettier",
4041
"fix:prettier": "prettier --write '{src,test}/**/*.ts'",
4142
"fix:tslint": "tslint --fix -t stylish -p .",

packages/hub/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"lint": "run-s lint:prettier lint:tslint",
3535
"lint:prettier": "prettier-check '{src,test}/**/*.ts'",
3636
"lint:tslint": "tslint -t stylish -p .",
37+
"lint:tslint:json": "tslint --format json -p . | tee lint-results.json",
3738
"fix": "run-s fix:tslint fix:prettier",
3839
"fix:prettier": "prettier --write '{src,test}/**/*.ts'",
3940
"fix:tslint": "tslint --fix -t stylish -p .",

0 commit comments

Comments
 (0)