From 5d1e2a34eca694024d2c424cfa1deeb74f955307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Fri, 18 Mar 2022 09:58:13 +0200 Subject: [PATCH 1/4] Enable exception mode to skip scripts on first error --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 80090ebfe..3d473165c 100644 --- a/package.json +++ b/package.json @@ -62,16 +62,16 @@ "build": "shx rm -rf ./distribution && tsc -p tsconfig.production.json && madge ./distribution --circular", "build:fast": "tsc -p tsconfig.production.json", "build:flow-types": "cp source/danger.d.ts source/_danger.d.ts && sed -ie 's/api: GitHub/api: any/g' source/_danger.d.ts && npx flowgen@1.3.0 source/_danger.d.ts -o distribution/danger.js.flow && node scripts/update_flow_types.js", - "build:schemas": "typescript-json-schema tsconfig.json DangerJSON > source/danger-incoming-process-schema.json; typescript-json-schema tsconfig.json DangerResults > source/danger-outgoing-process-schema.json; yarn prettier --write source/danger-outgoing-process-schema.json source/danger-incoming-process-schema.json", - "build:pretty-types": "yarn prettier --write distribution/danger.d.ts; yarn prettier --parser flow distribution/danger.js.flow --write", + "build:schemas": "set -e; typescript-json-schema tsconfig.json DangerJSON > source/danger-incoming-process-schema.json; typescript-json-schema tsconfig.json DangerResults > source/danger-outgoing-process-schema.json; yarn prettier --write source/danger-outgoing-process-schema.json source/danger-incoming-process-schema.json", + "build:pretty-types": "set -e; yarn prettier --write distribution/danger.d.ts; yarn prettier --parser flow distribution/danger.js.flow --write", "build:watch": "tsc -w", "link": "yarn run build && chmod +x distribution/commands/danger.js && yarn link", - "package": "yarn run pkg . --output brew-distribution/danger; zip -j brew-distribution/danger-macos.zip brew-distribution/danger; shasum -a 256 brew-distribution/danger-macos.zip", + "package": "set -e; yarn run pkg . --output brew-distribution/danger; zip -j brew-distribution/danger-macos.zip brew-distribution/danger; shasum -a 256 brew-distribution/danger-macos.zip", "declarations": "ts-node ./scripts/create-danger-dts.ts", - "docs:cp_defs": "mkdir docs/docs_generate; cp source/danger.d.ts docs/docs_generate; cp node_modules/@octokit/rest/index.d.ts docs/docs_generate/github.d.ts", - "docs": "yarn run docs:cp_defs; yarn typedoc --ignoreCompilerErrors --mode modules --json docs/js_ref_dsl_docs.json --includeDeclarations source", + "docs:cp_defs": "set -e; mkdir docs/docs_generate; cp source/danger.d.ts docs/docs_generate; cp node_modules/@octokit/rest/index.d.ts docs/docs_generate/github.d.ts", + "docs": "set -e; yarn run docs:cp_defs; yarn typedoc --ignoreCompilerErrors --mode modules --json docs/js_ref_dsl_docs.json --includeDeclarations source", "dts-lint": "yarn run declarations && yarn dtslint types", - "danger:prepush": "yarn build:fast; yarn test:fixtures; node distribution/commands/danger.js local --base main --dangerfile dangerfile.lite.ts" + "danger:prepush": "set -e; yarn build:fast; yarn test:fixtures; node distribution/commands/danger.js local --base main --dangerfile dangerfile.lite.ts" }, "repository": { "type": "git", @@ -185,7 +185,7 @@ "husky": { "hooks": { "pre-commit": "lint-staged", - "pre-push": "yarn build; yarn danger:prepush" + "pre-push": "set -e; yarn build; yarn danger:prepush" } } } From c630686bc7bca46623a5c788702513c4c6de84e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Fri, 18 Mar 2022 09:59:32 +0200 Subject: [PATCH 2/4] Be consistent and use set -e in all scripts --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3d473165c..539903cb2 100644 --- a/package.json +++ b/package.json @@ -58,19 +58,19 @@ "test:watch": "jest --watch", "lint": "eslint \"source/*.ts\" \"source/**/*.ts\"", "lint:fix": "yarn --silent lint --fix", - "prepublishOnly": "yarn build && yarn jest && yarn declarations && yarn build:flow-types && yarn build:pretty-types", - "build": "shx rm -rf ./distribution && tsc -p tsconfig.production.json && madge ./distribution --circular", + "prepublishOnly": "set -e; yarn build; yarn jest; yarn declarations; yarn build:flow-types; yarn build:pretty-types", + "build": "set -e; shx rm -rf ./distribution; tsc -p tsconfig.production.json; madge ./distribution --circular", "build:fast": "tsc -p tsconfig.production.json", - "build:flow-types": "cp source/danger.d.ts source/_danger.d.ts && sed -ie 's/api: GitHub/api: any/g' source/_danger.d.ts && npx flowgen@1.3.0 source/_danger.d.ts -o distribution/danger.js.flow && node scripts/update_flow_types.js", + "build:flow-types": "set -e; cp source/danger.d.ts source/_danger.d.ts; sed -ie 's/api: GitHub/api: any/g' source/_danger.d.ts; npx flowgen@1.3.0 source/_danger.d.ts -o distribution/danger.js.flow; node scripts/update_flow_types.js", "build:schemas": "set -e; typescript-json-schema tsconfig.json DangerJSON > source/danger-incoming-process-schema.json; typescript-json-schema tsconfig.json DangerResults > source/danger-outgoing-process-schema.json; yarn prettier --write source/danger-outgoing-process-schema.json source/danger-incoming-process-schema.json", "build:pretty-types": "set -e; yarn prettier --write distribution/danger.d.ts; yarn prettier --parser flow distribution/danger.js.flow --write", "build:watch": "tsc -w", - "link": "yarn run build && chmod +x distribution/commands/danger.js && yarn link", + "link": "set -e; yarn run build; chmod +x distribution/commands/danger.js; yarn link", "package": "set -e; yarn run pkg . --output brew-distribution/danger; zip -j brew-distribution/danger-macos.zip brew-distribution/danger; shasum -a 256 brew-distribution/danger-macos.zip", "declarations": "ts-node ./scripts/create-danger-dts.ts", "docs:cp_defs": "set -e; mkdir docs/docs_generate; cp source/danger.d.ts docs/docs_generate; cp node_modules/@octokit/rest/index.d.ts docs/docs_generate/github.d.ts", "docs": "set -e; yarn run docs:cp_defs; yarn typedoc --ignoreCompilerErrors --mode modules --json docs/js_ref_dsl_docs.json --includeDeclarations source", - "dts-lint": "yarn run declarations && yarn dtslint types", + "dts-lint": "set -e; yarn run declarations; yarn dtslint types", "danger:prepush": "set -e; yarn build:fast; yarn test:fixtures; node distribution/commands/danger.js local --base main --dangerfile dangerfile.lite.ts" }, "repository": { From 39188722226ed9f0f4093d03b3e41a5e3f44e0f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 16 Mar 2022 16:07:00 +0200 Subject: [PATCH 3/4] Update commander to 9.0.0 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 539903cb2..6d98728d6 100644 --- a/package.json +++ b/package.json @@ -148,7 +148,7 @@ "@octokit/rest": "^18.12.0", "async-retry": "1.2.3", "chalk": "^2.3.0", - "commander": "^2.18.0", + "commander": "^9.0.0", "debug": "^4.1.1", "fast-json-patch": "^3.0.0-1", "get-stdin": "^6.0.0", diff --git a/yarn.lock b/yarn.lock index d35c48ba0..e317e55e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2468,11 +2468,6 @@ commander@^2.14.1, commander@^2.15.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== -commander@^2.18.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - commander@^2.6.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -2485,6 +2480,11 @@ commander@^2.8.1, commander@^2.9.0: dependencies: graceful-readlink ">= 1.0.0" +commander@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.0.0.tgz#86d58f24ee98126568936bd1d3574e0308a99a40" + integrity sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== + commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" From 56f0100df8c457b3d80af69763ca680560e34766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 16 Mar 2022 16:32:04 +0200 Subject: [PATCH 4/4] Update to commander 9.x types --- source/commands/utils/sharedDangerfileArgs.ts | 6 +++--- source/runner/dslGenerator.ts | 6 +++--- source/runner/jsonToContext.ts | 10 +++------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/source/commands/utils/sharedDangerfileArgs.ts b/source/commands/utils/sharedDangerfileArgs.ts index 1931714ec..e8c3410c0 100644 --- a/source/commands/utils/sharedDangerfileArgs.ts +++ b/source/commands/utils/sharedDangerfileArgs.ts @@ -1,12 +1,12 @@ -import program from "commander" +import { Command } from "commander" import chalk from "chalk" -process.on("unhandledRejection", function(reason: string, _p: any) { +process.on("unhandledRejection", function (reason: string, _p: any) { console.log(chalk.red("Error: "), reason) process.exitCode = 1 }) -export interface SharedCLI extends program.CommanderStatic { +export interface SharedCLI extends Command { /** Should we be posting as much info as possible? */ verbose: boolean /** Output to STDOUT instead of leaving a comment */ diff --git a/source/runner/dslGenerator.ts b/source/runner/dslGenerator.ts index bb0c7c54a..d06eeb043 100644 --- a/source/runner/dslGenerator.ts +++ b/source/runner/dslGenerator.ts @@ -3,12 +3,12 @@ import { DangerDSLJSONType } from "../dsl/DangerDSL" import { CliArgs } from "../dsl/cli-args" import { CISource } from "../ci_source/ci_source" import { emptyGitJSON } from "../platforms/github/GitHubGit" -import { CommanderStatic } from "commander" +import { Command } from "commander" export const jsonDSLGenerator = async ( platform: Platform, source: CISource, - program: CommanderStatic + program: Command ): Promise => { const useSimpleDSL = platform.getPlatformReviewSimpleRepresentation && source.useEventDSL @@ -27,7 +27,7 @@ export const jsonDSLGenerator = async ( id: program.id, textOnly: program.textOnly, verbose: program.verbose, - staging: program.staging + staging: program.staging, } const dslPlatformName = jsonDSLPlatformName(platform) diff --git a/source/runner/jsonToContext.ts b/source/runner/jsonToContext.ts index ad3a5ceb6..cd538cc19 100644 --- a/source/runner/jsonToContext.ts +++ b/source/runner/jsonToContext.ts @@ -3,7 +3,7 @@ import { jsonToDSL } from "./jsonToDSL" import { contextForDanger, DangerContext } from "./Dangerfile" import { DangerDSLJSON } from "./dangerDSLJSON" import { CISource } from "../ci_source/ci_source" -import { CommanderStatic } from "commander" +import { Command } from "commander" /** * Reads in the JSON string converts to a dsl object and gets the change context @@ -12,12 +12,8 @@ import { CommanderStatic } from "commander" * @param program {any} commander * @returns {Promise} context for danger */ -export async function jsonToContext( - JSONString: string, - program: CommanderStatic, - source: CISource -): Promise { - const dslJSON = { danger: new DangerDSLJSON(JSONString, (program as any) as CliArgs) } +export async function jsonToContext(JSONString: string, program: Command, source: CISource): Promise { + const dslJSON = { danger: new DangerDSLJSON(JSONString, program as any as CliArgs) } const dsl = await jsonToDSL(dslJSON.danger, source) return contextForDanger(dsl) }