skuba 4.2.1-beta.0 → 4.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/jest-preset.js +5 -1
- package/lib/api/git/index.d.ts +1 -0
- package/lib/api/git/index.js +3 -1
- package/lib/api/git/index.js.map +1 -1
- package/lib/api/git/pull.d.ts +35 -0
- package/lib/api/git/pull.js +34 -0
- package/lib/api/git/pull.js.map +1 -0
- package/lib/api/github/index.d.ts +1 -0
- package/lib/api/github/index.js +5 -1
- package/lib/api/github/index.js.map +1 -1
- package/lib/api/github/push.d.ts +62 -0
- package/lib/api/github/push.js +133 -0
- package/lib/api/github/push.js.map +1 -0
- package/lib/api/jest/index.d.ts +26 -11
- package/lib/cli/adapter/eslint.d.ts +2 -1
- package/lib/cli/adapter/eslint.js +5 -1
- package/lib/cli/adapter/eslint.js.map +1 -1
- package/lib/cli/configure/analysis/diff.d.ts +1 -1
- package/lib/cli/configure/analysis/package.d.ts +1 -1
- package/lib/cli/configure/processing/ignoreFile.d.ts +1 -1
- package/lib/cli/configure/processing/javascript.d.ts +1 -1
- package/lib/cli/configure/processing/json.d.ts +1 -1
- package/lib/cli/configure/processing/package.d.ts +11 -11
- package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
- package/lib/cli/lint/autofix.d.ts +7 -1
- package/lib/cli/lint/autofix.js +35 -18
- package/lib/cli/lint/autofix.js.map +1 -1
- package/lib/cli/lint/external.d.ts +1 -0
- package/lib/cli/lint/external.js +16 -16
- package/lib/cli/lint/external.js.map +1 -1
- package/lib/cli/test/reporters/github/annotations.js +19 -7
- package/lib/cli/test/reporters/github/annotations.js.map +1 -1
- package/lib/cli/test/reporters/github/index.d.ts +2 -2
- package/lib/cli/test/reporters/github/index.js +11 -1
- package/lib/cli/test/reporters/github/index.js.map +1 -1
- package/lib/utils/args.js +1 -1
- package/lib/utils/args.js.map +1 -1
- package/lib/utils/error.d.ts +14 -0
- package/lib/utils/error.js +14 -1
- package/lib/utils/error.js.map +1 -1
- package/lib/utils/version.js +3 -4
- package/lib/utils/version.js.map +1 -1
- package/lib/utils/wait.d.ts +17 -0
- package/lib/utils/wait.js +32 -0
- package/lib/utils/wait.js.map +1 -0
- package/lib/wrapper/http.d.ts +1 -1
- package/package.json +23 -20
- package/template/express-rest-api/.buildkite/pipeline.yml +5 -4
- package/template/express-rest-api/package.json +1 -1
- package/template/greeter/.buildkite/pipeline.yml +2 -1
- package/template/koa-rest-api/.buildkite/pipeline.yml +5 -4
- package/template/koa-rest-api/package.json +6 -6
- package/template/koa-rest-api/src/api/jobs/getJobs.ts +2 -2
- package/template/koa-rest-api/src/api/jobs/postJob.ts +2 -2
- package/template/koa-rest-api/src/framework/logging.ts +8 -5
- package/template/koa-rest-api/src/framework/metrics.ts +2 -2
- package/template/koa-rest-api/src/framework/server.test.ts +21 -21
- package/template/koa-rest-api/src/framework/server.ts +4 -3
- package/template/koa-rest-api/src/listen.ts +2 -2
- package/template/koa-rest-api/src/testing/logging.ts +5 -20
- package/template/lambda-sqs-worker/.buildkite/pipeline.yml +2 -1
- package/template/lambda-sqs-worker/.nvmrc +1 -1
- package/template/lambda-sqs-worker/Dockerfile +1 -1
- package/template/lambda-sqs-worker/package.json +5 -5
- package/template/lambda-sqs-worker/serverless.yml +2 -2
- package/template/lambda-sqs-worker/src/app.test.ts +9 -9
- package/template/lambda-sqs-worker/src/app.ts +2 -1
- package/template/lambda-sqs-worker/src/framework/handler.test.ts +10 -10
- package/template/lambda-sqs-worker/src/framework/handler.ts +14 -17
- package/template/lambda-sqs-worker/src/framework/logging.ts +11 -6
- package/template/lambda-sqs-worker/src/testing/logging.ts +7 -5
- package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -1
- package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
- package/template/lambda-sqs-worker-cdk/Dockerfile +1 -1
- package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +2 -2
- package/template/lambda-sqs-worker-cdk/infra/appStack.ts +1 -1
- package/template/lambda-sqs-worker-cdk/package.json +9 -11
- package/template/private-npm-package/.buildkite/pipeline.yml +1 -1
package/lib/cli/lint/autofix.js
CHANGED
|
@@ -30,10 +30,12 @@ exports.autofix = void 0;
|
|
|
30
30
|
const util_1 = require("util");
|
|
31
31
|
const simple_git_1 = __importDefault(require("simple-git"));
|
|
32
32
|
const Git = __importStar(require("../../api/git"));
|
|
33
|
+
const GitHub = __importStar(require("../../api/github"));
|
|
33
34
|
const eslint_1 = require("../../cli/adapter/eslint");
|
|
34
35
|
const prettier_1 = require("../../cli/adapter/prettier");
|
|
35
36
|
const env_1 = require("../../utils/env");
|
|
36
37
|
const logging_1 = require("../../utils/logging");
|
|
38
|
+
const wait_1 = require("../../utils/wait");
|
|
37
39
|
const AUTOFIX_COMMIT_MESSAGE = 'Run `skuba format`';
|
|
38
40
|
const shouldPush = async ({ currentBranch, dir, }) => {
|
|
39
41
|
if (!(0, env_1.isCiEnv)()) {
|
|
@@ -63,7 +65,10 @@ const shouldPush = async ({ currentBranch, dir, }) => {
|
|
|
63
65
|
// Allow the push attempt to go ahead if our guards have been cleared.
|
|
64
66
|
return true;
|
|
65
67
|
};
|
|
66
|
-
const autofix = async (
|
|
68
|
+
const autofix = async (params) => {
|
|
69
|
+
if (!params.eslint && !params.prettier) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
67
72
|
const dir = process.cwd();
|
|
68
73
|
let currentBranch;
|
|
69
74
|
try {
|
|
@@ -73,30 +78,42 @@ const autofix = async (input) => {
|
|
|
73
78
|
if (!(await shouldPush({ currentBranch, dir }))) {
|
|
74
79
|
return;
|
|
75
80
|
}
|
|
76
|
-
// Naively try to autofix issues as we can't tell from ESLint output.
|
|
77
81
|
try {
|
|
78
82
|
logging_1.log.newline();
|
|
79
|
-
logging_1.log.warn(`Trying to autofix with ESLint and Prettier...`);
|
|
80
|
-
const logger = (0, logging_1.createLogger)(
|
|
81
|
-
|
|
83
|
+
logging_1.log.warn(`Trying to autofix with ${params.eslint ? 'ESLint and ' : ''}Prettier...`);
|
|
84
|
+
const logger = (0, logging_1.createLogger)(params.debug);
|
|
85
|
+
if (params.eslint) {
|
|
86
|
+
await (0, eslint_1.runESLint)('format', logger);
|
|
87
|
+
}
|
|
88
|
+
// Unconditionally re-run Prettier; reaching here means we have pre-existing
|
|
89
|
+
// format violations or may have created new ones through ESLint fixes.
|
|
82
90
|
await (0, prettier_1.runPrettier)('format', logger);
|
|
83
|
-
|
|
91
|
+
if (process.env.GITHUB_ACTIONS) {
|
|
92
|
+
// GitHub runners have Git installed locally
|
|
93
|
+
const ref = await Git.commitAllChanges({
|
|
94
|
+
dir,
|
|
95
|
+
message: AUTOFIX_COMMIT_MESSAGE,
|
|
96
|
+
});
|
|
97
|
+
if (!ref) {
|
|
98
|
+
return logging_1.log.warn('No autofixes detected.');
|
|
99
|
+
}
|
|
100
|
+
await (0, wait_1.throwOnTimeout)((0, simple_git_1.default)().push(), { s: 30 });
|
|
101
|
+
logging_1.log.warn(`Pushed fix commit ${ref}.`);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
// Other CI Environments, use GitHub API
|
|
105
|
+
if (!currentBranch) {
|
|
106
|
+
logging_1.log.warn('Could not determine the current branch');
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const ref = await (0, wait_1.throwOnTimeout)(GitHub.commitAndPushAllChanges({
|
|
84
110
|
dir,
|
|
85
|
-
|
|
86
|
-
|
|
111
|
+
branch: currentBranch,
|
|
112
|
+
messageHeadline: AUTOFIX_COMMIT_MESSAGE,
|
|
113
|
+
}), { s: 30 });
|
|
87
114
|
if (!ref) {
|
|
88
115
|
return logging_1.log.warn('No autofixes detected.');
|
|
89
116
|
}
|
|
90
|
-
await (process.env.GITHUB_ACTIONS
|
|
91
|
-
? // GitHub's checkout action should preconfigure the Git CLI.
|
|
92
|
-
(0, simple_git_1.default)().push()
|
|
93
|
-
: // In other CI environments (Buildkite) we fall back to GitHub App auth.
|
|
94
|
-
Git.push({
|
|
95
|
-
auth: { type: 'gitHubApp' },
|
|
96
|
-
dir: process.cwd(),
|
|
97
|
-
ref,
|
|
98
|
-
remoteRef: currentBranch,
|
|
99
|
-
}));
|
|
100
117
|
logging_1.log.warn(`Pushed fix commit ${ref}.`);
|
|
101
118
|
}
|
|
102
119
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../../src/cli/lint/autofix.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+B;AAE/B,4DAAmC;AAEnC,mDAAqC;AACrC,qDAAqD;AACrD,yDAAyD;AACzD,yCAA0C;AAC1C,iDAAwD;
|
|
1
|
+
{"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../../src/cli/lint/autofix.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/lint/external.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.externalLint = exports.StreamInterceptor = void 0;
|
|
|
7
7
|
const stream_1 = __importDefault(require("stream"));
|
|
8
8
|
const util_1 = require("util");
|
|
9
9
|
const logging_1 = require("../../utils/logging");
|
|
10
|
+
const wait_1 = require("../../utils/wait");
|
|
10
11
|
const annotate_1 = require("./annotate");
|
|
11
12
|
const autofix_1 = require("./autofix");
|
|
12
13
|
const eslint_1 = require("./eslint");
|
|
@@ -68,28 +69,27 @@ const externalLint = async (input) => {
|
|
|
68
69
|
tscOutputStream.pipe(input.tscOutputStream ?? process.stdout);
|
|
69
70
|
const { eslint, prettier, tscOk } = await lint({ ...input, tscOutputStream });
|
|
70
71
|
try {
|
|
71
|
-
await (0, annotate_1.createAnnotations)(eslint, prettier, tscOk, tscOutputStream);
|
|
72
|
+
await (0, wait_1.throwOnTimeout)((0, annotate_1.createAnnotations)(eslint, prettier, tscOk, tscOutputStream), { s: 30 });
|
|
72
73
|
}
|
|
73
74
|
catch (err) {
|
|
74
75
|
logging_1.log.warn('Failed to annotate lint results.');
|
|
75
76
|
logging_1.log.subtle((0, util_1.inspect)(err));
|
|
76
77
|
}
|
|
77
|
-
if (eslint.ok
|
|
78
|
-
|
|
78
|
+
if (!eslint.ok || !prettier.ok || !tscOk) {
|
|
79
|
+
const tools = [
|
|
80
|
+
...(eslint.ok ? [] : ['ESLint']),
|
|
81
|
+
...(prettier.ok ? [] : ['Prettier']),
|
|
82
|
+
...(tscOk ? [] : ['tsc']),
|
|
83
|
+
];
|
|
84
|
+
logging_1.log.newline();
|
|
85
|
+
logging_1.log.err(`${tools.join(', ')} found issues that require triage.`);
|
|
86
|
+
process.exitCode = 1;
|
|
79
87
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
logging_1.log.newline();
|
|
86
|
-
logging_1.log.err(`${tools.join(', ')} found issues that require triage.`);
|
|
87
|
-
process.exitCode = 1;
|
|
88
|
-
if (eslint.ok && prettier.ok) {
|
|
89
|
-
// If these are fine then the issue lies with tsc, which we can't autofix.
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
await (0, autofix_1.autofix)(input);
|
|
88
|
+
await (0, autofix_1.autofix)({
|
|
89
|
+
debug: input.debug,
|
|
90
|
+
eslint: eslint.fixable,
|
|
91
|
+
prettier: !prettier.ok,
|
|
92
|
+
});
|
|
93
93
|
};
|
|
94
94
|
exports.externalLint = externalLint;
|
|
95
95
|
//# sourceMappingURL=external.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cli/lint/external.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,+BAA+B;AAE/B,iDAA0C;
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../../src/cli/lint/external.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,13 +21,25 @@ const strip_ansi_1 = __importDefault(require("strip-ansi"));
|
|
|
21
21
|
* ...
|
|
22
22
|
* ```
|
|
23
23
|
*
|
|
24
|
+
* or:
|
|
25
|
+
*
|
|
26
|
+
* ```console
|
|
27
|
+
* Error: expect(received).toBe(expected) // Object.is equality
|
|
28
|
+
*
|
|
29
|
+
* Expected: "a"
|
|
30
|
+
* Received: "b"
|
|
31
|
+
* at /workdir/skuba/src/test.test.ts:2:15
|
|
32
|
+
* at Promise.then.completed (/workdir/skuba/node_modules/jest-circus/build/utils.js:390:28)
|
|
33
|
+
* ...
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
24
36
|
* This pattern will produce the following matches:
|
|
25
37
|
*
|
|
26
38
|
* 1. /workdir/skuba/src/test.test.ts
|
|
27
39
|
* 2. 2
|
|
28
40
|
* 2. 15
|
|
29
41
|
*/
|
|
30
|
-
const JEST_LOCATION_REGEX = /\((.+?):(\d+):(\d+)
|
|
42
|
+
const JEST_LOCATION_REGEX = /\n +at (.+\()?(.+?):(\d+):(\d+)/;
|
|
31
43
|
const createAnnotations = (testResults) => {
|
|
32
44
|
const cwd = process.cwd();
|
|
33
45
|
return testResults.flatMap((testResult) => {
|
|
@@ -44,14 +56,14 @@ const createAnnotations = (testResults) => {
|
|
|
44
56
|
if (testResult.numFailingTests > 0) {
|
|
45
57
|
return testResult.testResults.flatMap((assertionResult) => assertionResult.failureMessages.flatMap((failureMessage) => {
|
|
46
58
|
const match = JEST_LOCATION_REGEX.exec(failureMessage);
|
|
47
|
-
if (match?.length ===
|
|
59
|
+
if (match?.length === 5) {
|
|
48
60
|
return {
|
|
49
61
|
annotation_level: 'failure',
|
|
50
|
-
path: path_1.default.relative(cwd, match[
|
|
51
|
-
start_line: Number(match[
|
|
52
|
-
end_line: Number(match[
|
|
53
|
-
start_column: Number(match[
|
|
54
|
-
end_column: Number(match[
|
|
62
|
+
path: path_1.default.relative(cwd, match[2]),
|
|
63
|
+
start_line: Number(match[3]),
|
|
64
|
+
end_line: Number(match[3]),
|
|
65
|
+
start_column: Number(match[4]),
|
|
66
|
+
end_column: Number(match[4]),
|
|
55
67
|
message: (0, strip_ansi_1.default)(failureMessage),
|
|
56
68
|
title: 'Jest',
|
|
57
69
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../../../src/cli/test/reporters/github/annotations.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,4DAAmC;AAInC
|
|
1
|
+
{"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../../../src/cli/test/reporters/github/annotations.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,4DAAmC;AAInC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAEvD,MAAM,iBAAiB,GAAG,CAC/B,WAAyB,EACJ,EAAE;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACxC,IAAI,UAAU,CAAC,aAAa,EAAE;YAC5B,OAAO;gBACL,gBAAgB,EAAE,SAAS;gBAC3B,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC;gBACjD,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,IAAA,oBAAS,EAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;gBACpD,KAAK,EAAE,MAAM;aACd,CAAC;SACH;QAED,IAAI,UAAU,CAAC,eAAe,GAAG,CAAC,EAAE;YAClC,OAAO,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE,CACxD,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;gBACzD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE;oBACvB,OAAO;wBACL,gBAAgB,EAAE,SAAS;wBAC3B,IAAI,EAAE,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;wBAClC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC1B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC9B,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,OAAO,EAAE,IAAA,oBAAS,EAAC,cAAc,CAAC;wBAClC,KAAK,EAAE,MAAM;qBACd,CAAC;iBACH;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CACH,CAAC;SACH;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzCW,QAAA,iBAAiB,qBAyC5B;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAOrD,MAAM,yBAAyB,GAAG,CACvC,WAAyB,EACN,EAAE;IAGrB,sCAAsC;IACtC,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAC7C,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACd,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,oBAAoB,CAAC;QAErE,CAAC,GAAG,CAAC,WAAW,MAAf,GAAG,CAAC,WAAW,IAAM,EAAE,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,SAAS,EAAE,cAAc,CAAC,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC;KACxC,CAAC;IAEF,4CAA4C;IAC5C,OAAO,OAAO,CAAC,GAAG,CAAkB,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,WAAW,EAAE,IAAA,yBAAiB,EAAC,OAAO,CAAC;QACvC,WAAW;KACZ,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AA7BW,QAAA,yBAAyB,6BA6BpC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Reporter, TestContext } from '@jest/reporters';
|
|
2
2
|
import type { AggregatedResult } from '@jest/test-result';
|
|
3
3
|
export default class GitHubReporter implements Pick<Reporter, 'onRunComplete'> {
|
|
4
|
-
onRunComplete(_contexts: Set<
|
|
4
|
+
onRunComplete(_contexts: Set<TestContext>, { testResults }: AggregatedResult): Promise<void>;
|
|
5
5
|
}
|
|
@@ -27,12 +27,14 @@ const util_1 = require("util");
|
|
|
27
27
|
const GitHub = __importStar(require("../../../../api/github"));
|
|
28
28
|
const environment_1 = require("../../../../api/github/environment");
|
|
29
29
|
const logging_1 = require("../../../../utils/logging");
|
|
30
|
+
const wait_1 = require("../../../../utils/wait");
|
|
30
31
|
const annotations_1 = require("./annotations");
|
|
31
32
|
class GitHubReporter {
|
|
32
33
|
async onRunComplete(_contexts, { testResults }) {
|
|
33
34
|
if (!(0, environment_1.enabledFromEnvironment)()) {
|
|
34
35
|
return;
|
|
35
36
|
}
|
|
37
|
+
let lastCheckRun;
|
|
36
38
|
try {
|
|
37
39
|
const entries = (0, annotations_1.generateAnnotationEntries)(testResults);
|
|
38
40
|
const build = (0, environment_1.buildNameFromEnvironment)();
|
|
@@ -44,18 +46,26 @@ class GitHubReporter {
|
|
|
44
46
|
const summary = isOk
|
|
45
47
|
? '`skuba test` passed.'
|
|
46
48
|
: '`skuba test` found issues that require triage.';
|
|
47
|
-
|
|
49
|
+
const checkRun = {
|
|
48
50
|
name,
|
|
49
51
|
annotations,
|
|
50
52
|
conclusion: isOk ? 'success' : 'failure',
|
|
51
53
|
summary,
|
|
52
54
|
title: `${build} ${isOk ? 'passed' : 'failed'}`,
|
|
55
|
+
};
|
|
56
|
+
lastCheckRun = checkRun;
|
|
57
|
+
await (0, wait_1.throwOnTimeout)(GitHub.createCheckRun(checkRun), {
|
|
58
|
+
s: 30,
|
|
53
59
|
});
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
catch (err) {
|
|
57
63
|
logging_1.log.warn('Failed to report test results to GitHub.');
|
|
58
64
|
logging_1.log.subtle((0, util_1.inspect)(err));
|
|
65
|
+
if (lastCheckRun) {
|
|
66
|
+
logging_1.log.subtle('Last request:');
|
|
67
|
+
logging_1.log.subtle(JSON.stringify(lastCheckRun));
|
|
68
|
+
}
|
|
59
69
|
}
|
|
60
70
|
}
|
|
61
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/test/reporters/github/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+B;AAK/B,+DAAiD;AACjD,oEAG4C;AAC5C,uDAAgD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/test/reporters/github/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+B;AAK/B,+DAAiD;AACjD,oEAG4C;AAC5C,uDAAgD;AAChD,iDAAwD;AAExD,+CAA0D;AAE1D,MAAqB,cAAc;IACjC,KAAK,CAAC,aAAa,CACjB,SAA2B,EAC3B,EAAE,WAAW,EAAoB;QAEjC,IAAI,CAAC,IAAA,oCAAsB,GAAE,EAAE;YAC7B,OAAO;SACR;QAID,IAAI,YAAkC,CAAC;QAEvC,IAAI;YACF,MAAM,OAAO,GAAG,IAAA,uCAAyB,EAAC,WAAW,CAAC,CAAC;YAEvD,MAAM,KAAK,GAAG,IAAA,sCAAwB,GAAE,CAAC;YAEzC,uCAAuC;YACvC,0EAA0E;YAC1E,KAAK,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,OAAO,EAAE;gBAClD,MAAM,IAAI,GAAG,aAAa,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAEnE,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;gBAEjC,MAAM,OAAO,GAAG,IAAI;oBAClB,CAAC,CAAC,sBAAsB;oBACxB,CAAC,CAAC,gDAAgD,CAAC;gBAErD,MAAM,QAAQ,GAAa;oBACzB,IAAI;oBACJ,WAAW;oBACX,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBACxC,OAAO;oBACP,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;iBAChD,CAAC;gBAEF,YAAY,GAAG,QAAQ,CAAC;gBAExB,MAAM,IAAA,qBAAc,EAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;oBACpD,CAAC,EAAE,EAAE;iBACN,CAAC,CAAC;aACJ;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,aAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACrD,aAAG,CAAC,MAAM,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC,CAAC;YAEzB,IAAI,YAAY,EAAE;gBAChB,aAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC5B,aAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;aAC1C;SACF;IACH,CAAC;CACF;AArDD,iCAqDC"}
|
package/lib/utils/args.js
CHANGED
|
@@ -12,7 +12,7 @@ const hasSerialFlag = (args = process.argv, env = process.env) => args.some((arg
|
|
|
12
12
|
Boolean(
|
|
13
13
|
// Run serially on SEEK's central npm publishing pipeline.
|
|
14
14
|
// Exhausting agents here can cause grief.
|
|
15
|
-
env.BUILDKITE_AGENT_META_DATA_QUEUE?.split(',').
|
|
15
|
+
env.BUILDKITE_AGENT_META_DATA_QUEUE?.split(',').some((queueName) => queueName.startsWith('artefacts:npm')));
|
|
16
16
|
exports.hasSerialFlag = hasSerialFlag;
|
|
17
17
|
/**
|
|
18
18
|
* Parse process arguments.
|
package/lib/utils/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,uCAA4C;AAErC,MAAM,YAAY,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,SAAS,CAAC,CAAC;AAD/C,QAAA,YAAY,gBACmC;AAErD,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CACtE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,UAAU,CAAC;IAC1D,OAAO;IACL,0DAA0D;IAC1D,0CAA0C;IAC1C,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/error.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { inspect } from 'util';
|
|
1
3
|
import * as t from 'runtypes';
|
|
2
4
|
export declare type ConcurrentlyErrors = t.Static<typeof ConcurrentlyErrors>;
|
|
3
5
|
export declare const ConcurrentlyErrors: t.Array<t.Record<{
|
|
@@ -8,6 +10,18 @@ export declare const ConcurrentlyErrors: t.Array<t.Record<{
|
|
|
8
10
|
index: t.Number;
|
|
9
11
|
exitCode: t.Number;
|
|
10
12
|
}, false>, false>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates an error that returns its plain `message` rather than a full stack
|
|
15
|
+
* trace when `util.inspect`ed.
|
|
16
|
+
*
|
|
17
|
+
* This can be useful for terser handling and logging of known error scenarios
|
|
18
|
+
* that have descriptive messages.
|
|
19
|
+
*
|
|
20
|
+
* https://nodejs.org/api/util.html#custom-inspection-functions-on-objects
|
|
21
|
+
*/
|
|
22
|
+
export declare const createTerseError: (message?: string) => Error & {
|
|
23
|
+
[inspect.custom]: () => string | undefined;
|
|
24
|
+
};
|
|
11
25
|
export declare const handleCliError: (err: unknown) => void;
|
|
12
26
|
export declare const isErrorWithCode: <T>(err: unknown, code: T) => err is Record<PropertyKey, unknown> & {
|
|
13
27
|
code: T;
|
package/lib/utils/error.js
CHANGED
|
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
24
24
|
return result;
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.isErrorWithCode = exports.handleCliError = exports.ConcurrentlyErrors = void 0;
|
|
27
|
+
exports.isErrorWithCode = exports.handleCliError = exports.createTerseError = exports.ConcurrentlyErrors = void 0;
|
|
28
28
|
const util_1 = require("util");
|
|
29
29
|
const t = __importStar(require("runtypes"));
|
|
30
30
|
const logging_1 = require("./logging");
|
|
@@ -37,6 +37,19 @@ exports.ConcurrentlyErrors = t.Array(t.Record({
|
|
|
37
37
|
index: t.Number,
|
|
38
38
|
exitCode: t.Number,
|
|
39
39
|
}));
|
|
40
|
+
/**
|
|
41
|
+
* Creates an error that returns its plain `message` rather than a full stack
|
|
42
|
+
* trace when `util.inspect`ed.
|
|
43
|
+
*
|
|
44
|
+
* This can be useful for terser handling and logging of known error scenarios
|
|
45
|
+
* that have descriptive messages.
|
|
46
|
+
*
|
|
47
|
+
* https://nodejs.org/api/util.html#custom-inspection-functions-on-objects
|
|
48
|
+
*/
|
|
49
|
+
const createTerseError = (message) => Object.assign(new Error(message), {
|
|
50
|
+
[util_1.inspect.custom]: () => message,
|
|
51
|
+
});
|
|
52
|
+
exports.createTerseError = createTerseError;
|
|
40
53
|
const isExecaError = (err) => (0, validation_1.hasNumberProp)(err, 'exitCode');
|
|
41
54
|
const handleCliError = (err) => {
|
|
42
55
|
if (isExecaError(err)) {
|
package/lib/utils/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":";AAAA,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5B,+BAA+B;AAG/B,4CAA8B;AAE9B,uCAAgC;AAChC,6CAAsD;AAIzC,QAAA,kBAAkB,GAAG,CAAC,CAAC,KAAK,CACvC,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM;KACf,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,QAAQ,EAAE,CAAC,CAAC,MAAM;CACnB,CAAC,CACH,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,GAAY,EAAqB,EAAE,CACvD,IAAA,0BAAa,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAE1B,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,EAAE;IAC7C,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAChC,OAAO;KACR;IAED,aAAG,CAAC,GAAG,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO;AACT,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEK,MAAM,eAAe,GAAG,CAC7B,GAAY,EACZ,IAAO,EAC4C,EAAE,CACrD,IAAA,oBAAO,EAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;AAJ/B,QAAA,eAAe,mBAIgB"}
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/utils/error.ts"],"names":[],"mappings":";AAAA,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;AAE5B,+BAA+B;AAG/B,4CAA8B;AAE9B,uCAAgC;AAChC,6CAAsD;AAIzC,QAAA,kBAAkB,GAAG,CAAC,CAAC,KAAK,CACvC,CAAC,CAAC,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM;KACf,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,MAAM;IACf,QAAQ,EAAE,CAAC,CAAC,MAAM;CACnB,CAAC,CACH,CAAC;AAEF;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAE,EAAE,CACnD,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;IAChC,CAAC,cAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO;CAChC,CAAC,CAAC;AAHQ,QAAA,gBAAgB,oBAGxB;AAEL,MAAM,YAAY,GAAG,CAAC,GAAY,EAAqB,EAAE,CACvD,IAAA,0BAAa,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAE1B,MAAM,cAAc,GAAG,CAAC,GAAY,EAAE,EAAE;IAC7C,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAChC,OAAO;KACR;IAED,aAAG,CAAC,GAAG,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO;AACT,CAAC,CAAC;AATW,QAAA,cAAc,kBASzB;AAEK,MAAM,eAAe,GAAG,CAC7B,GAAY,EACZ,IAAO,EAC4C,EAAE,CACrD,IAAA,oBAAO,EAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;AAJ/B,QAAA,eAAe,mBAIgB"}
|
package/lib/utils/version.js
CHANGED
|
@@ -6,12 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getSkubaVersionInfo = exports.getSkubaVersion = void 0;
|
|
7
7
|
const latest_version_1 = __importDefault(require("latest-version"));
|
|
8
8
|
const manifest_1 = require("./manifest");
|
|
9
|
-
const
|
|
9
|
+
const wait_1 = require("./wait");
|
|
10
10
|
const latestSkubaVersion = async () => {
|
|
11
11
|
try {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return typeof result === 'string' ? result : null;
|
|
12
|
+
const result = await (0, wait_1.withTimeout)((0, latest_version_1.default)('skuba'), { s: 2 });
|
|
13
|
+
return result.ok ? result.value : null;
|
|
15
14
|
}
|
|
16
15
|
catch {
|
|
17
16
|
return null;
|
package/lib/utils/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2C;AAE3C,yCAA8C;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2C;AAE3C,yCAA8C;AAC9C,iCAAqC;AAErC,MAAM,kBAAkB,GAAG,KAAK,IAA4B,EAAE;IAC5D,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAW,EAAC,IAAA,wBAAa,EAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;KACxC;IAAC,MAAM;QACN,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,KAAK,IAAqB,EAAE;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,2BAAgB,GAAE,CAAC;IAE7C,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAgBK,MAAM,mBAAmB,GAAG,KAAK,IAA+B,EAAE;IACvE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACxC,IAAA,uBAAe,GAAE;QACjB,kBAAkB,EAAE;KACrB,CAAC,CAAC;IAEH,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,6DAA6D;QAC7D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK;YACL,MAAM;SACP,CAAC;KACH;IAED,OAAO;QACL,OAAO,EAAE,MAAM,KAAK,KAAK;QACzB,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,mBAAmB,uBAoB9B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface Timeout extends PromiseLike<void> {
|
|
2
|
+
clear?: () => void;
|
|
3
|
+
}
|
|
4
|
+
export declare const sleep: (ms: number) => Timeout;
|
|
5
|
+
export declare const throwOnTimeout: <T>(promise: PromiseLike<T>, { s }: {
|
|
6
|
+
s: number;
|
|
7
|
+
}) => Promise<T>;
|
|
8
|
+
declare type TimeoutResult<T> = {
|
|
9
|
+
ok: true;
|
|
10
|
+
value: T;
|
|
11
|
+
} | {
|
|
12
|
+
ok: false;
|
|
13
|
+
};
|
|
14
|
+
export declare const withTimeout: <T>(promise: T | PromiseLike<T>, { s }: {
|
|
15
|
+
s: number;
|
|
16
|
+
}) => Promise<TimeoutResult<T>>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.withTimeout = exports.throwOnTimeout = exports.sleep = void 0;
|
|
4
|
+
const error_1 = require("./error");
|
|
5
|
+
const logging_1 = require("./logging");
|
|
6
|
+
const sleep = (ms) => {
|
|
7
|
+
let timeout;
|
|
8
|
+
return Object.assign(new Promise((resolve) => (timeout = setTimeout(resolve, ms))), { clear: () => clearTimeout(timeout) });
|
|
9
|
+
};
|
|
10
|
+
exports.sleep = sleep;
|
|
11
|
+
const throwOnTimeout = async (promise, { s }) => {
|
|
12
|
+
const result = await (0, exports.withTimeout)(promise, { s });
|
|
13
|
+
if (!result.ok) {
|
|
14
|
+
throw (0, error_1.createTerseError)(`Timed out after ${(0, logging_1.pluralise)(s, 'second')}`);
|
|
15
|
+
}
|
|
16
|
+
return result.value;
|
|
17
|
+
};
|
|
18
|
+
exports.throwOnTimeout = throwOnTimeout;
|
|
19
|
+
const withTimeout = async (promise, { s }) => {
|
|
20
|
+
const timeout = (0, exports.sleep)(s * 1000);
|
|
21
|
+
try {
|
|
22
|
+
return await Promise.race([
|
|
23
|
+
Promise.resolve(promise).then((value) => ({ ok: true, value })),
|
|
24
|
+
timeout.then(() => ({ ok: false })),
|
|
25
|
+
]);
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
timeout.clear?.();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.withTimeout = withTimeout;
|
|
32
|
+
//# sourceMappingURL=wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/utils/wait.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAC3C,uCAAsC;AAM/B,MAAM,KAAK,GAAG,CAAC,EAAU,EAAW,EAAE;IAC3C,IAAI,OAAuB,CAAC;IAE5B,OAAO,MAAM,CAAC,MAAM,CAClB,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EACnE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CACvC,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,KAAK,SAOhB;AAEK,MAAM,cAAc,GAAG,KAAK,EACjC,OAAuB,EACvB,EAAE,CAAC,EAAiB,EACR,EAAE;IACd,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAW,EAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACd,MAAM,IAAA,wBAAgB,EAAC,mBAAmB,IAAA,mBAAS,EAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;KACrE;IAED,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB;AAIK,MAAM,WAAW,GAAG,KAAK,EAC9B,OAA2B,EAC3B,EAAE,CAAC,EAAiB,EACO,EAAE;IAC7B,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,CAAC,GAAG,IAAK,CAAC,CAAC;IAEjC,IAAI;QACF,OAAO,MAAM,OAAO,CAAC,IAAI,CAAmB;YAC1C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ;YAAS;QACR,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;KACnB;AACH,CAAC,CAAC;AAdW,QAAA,WAAW,eActB"}
|
package/lib/wrapper/http.d.ts
CHANGED
|
@@ -11,4 +11,4 @@ export declare const createRequestListenerFromFunction: (fn: (...args: unknown[]
|
|
|
11
11
|
*
|
|
12
12
|
* This function resolves when the server is closed.
|
|
13
13
|
*/
|
|
14
|
-
export declare const serveRequestListener: (requestListener: http.RequestListener, port?: number
|
|
14
|
+
export declare const serveRequestListener: (requestListener: http.RequestListener, port?: number) => Promise<void>;
|
package/package.json
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
"url": "https://github.com/seek-oss/skuba/issues"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
+
"@octokit/graphql": "^4.8.0",
|
|
10
|
+
"@octokit/graphql-schema": "^10.73.0",
|
|
9
11
|
"@octokit/rest": "^18.12.0",
|
|
10
12
|
"@octokit/types": "^6.34.0",
|
|
11
|
-
"@types/jest": "^
|
|
13
|
+
"@types/jest": "^28.0.0",
|
|
12
14
|
"@types/node": ">=14.18",
|
|
13
15
|
"chalk": "^4.1.0",
|
|
14
16
|
"concurrently": "^7.0.0",
|
|
@@ -16,7 +18,7 @@
|
|
|
16
18
|
"ejs": "^3.1.6",
|
|
17
19
|
"enquirer": "^2.3.6",
|
|
18
20
|
"eslint": "^8.11.0",
|
|
19
|
-
"eslint-config-skuba": "1.0
|
|
21
|
+
"eslint-config-skuba": "1.1.0",
|
|
20
22
|
"execa": "^5.0.0",
|
|
21
23
|
"fdir": "^5.0.0",
|
|
22
24
|
"fs-extra": "^10.0.0",
|
|
@@ -25,7 +27,8 @@
|
|
|
25
27
|
"ignore": "^5.1.8",
|
|
26
28
|
"is-installed-globally": "^0.4.0",
|
|
27
29
|
"isomorphic-git": "^1.11.1",
|
|
28
|
-
"jest": "^
|
|
30
|
+
"jest": "^28.1.0",
|
|
31
|
+
"jest-watch-typeahead": "^1.1.0",
|
|
29
32
|
"latest-version": "^5.1.0",
|
|
30
33
|
"lodash.mergewith": "^4.6.2",
|
|
31
34
|
"normalize-package-data": "^4.0.0",
|
|
@@ -39,35 +42,36 @@
|
|
|
39
42
|
"serialize-error": "^8.0.1",
|
|
40
43
|
"simple-git": "^3.5.0",
|
|
41
44
|
"strip-ansi": "^6.0.1",
|
|
42
|
-
"ts-jest": "^
|
|
43
|
-
"ts-node": "^10.
|
|
44
|
-
"ts-node-dev": "^2.0.0
|
|
45
|
-
"tsconfig-paths": "^
|
|
45
|
+
"ts-jest": "^28.0.2",
|
|
46
|
+
"ts-node": "^10.7.0",
|
|
47
|
+
"ts-node-dev": "^2.0.0",
|
|
48
|
+
"tsconfig-paths": "^4.0.0",
|
|
46
49
|
"tsconfig-seek": "1.0.2",
|
|
47
|
-
"typescript": "~4.
|
|
50
|
+
"typescript": "~4.7.0"
|
|
48
51
|
},
|
|
49
52
|
"description": "SEEK development toolkit for backend applications and packages",
|
|
50
53
|
"devDependencies": {
|
|
51
54
|
"@changesets/cli": "2.22.0",
|
|
52
55
|
"@changesets/get-github-info": "0.5.0",
|
|
53
|
-
"@jest/reporters": "
|
|
54
|
-
"@types/ejs": "3.1.
|
|
56
|
+
"@jest/reporters": "28.1.0",
|
|
57
|
+
"@types/ejs": "3.1.1",
|
|
55
58
|
"@types/express": "4.17.13",
|
|
56
59
|
"@types/fs-extra": "9.0.13",
|
|
57
60
|
"@types/koa": "2.13.4",
|
|
58
|
-
"@types/lodash.mergewith": "4.6.
|
|
61
|
+
"@types/lodash.mergewith": "4.6.7",
|
|
59
62
|
"@types/module-alias": "2.0.1",
|
|
60
63
|
"@types/npm-which": "3.0.1",
|
|
61
64
|
"@types/picomatch": "2.3.0",
|
|
62
65
|
"@types/supertest": "2.0.12",
|
|
63
|
-
"enhanced-resolve": "5.9.
|
|
64
|
-
"express": "4.
|
|
66
|
+
"enhanced-resolve": "5.9.3",
|
|
67
|
+
"express": "4.18.1",
|
|
68
|
+
"graphql-tag": "2.12.6",
|
|
65
69
|
"jsonfile": "6.1.0",
|
|
66
70
|
"koa": "2.13.4",
|
|
67
|
-
"memfs": "3.4.
|
|
68
|
-
"semver": "7.3.
|
|
69
|
-
"supertest": "6.2.
|
|
70
|
-
"type-fest": "2.
|
|
71
|
+
"memfs": "3.4.4",
|
|
72
|
+
"semver": "7.3.7",
|
|
73
|
+
"supertest": "6.2.3",
|
|
74
|
+
"type-fest": "2.13.0"
|
|
71
75
|
},
|
|
72
76
|
"engines": {
|
|
73
77
|
"node": ">=14.18"
|
|
@@ -99,8 +103,7 @@
|
|
|
99
103
|
"url": "git+https://github.com/seek-oss/skuba.git"
|
|
100
104
|
},
|
|
101
105
|
"resolutions": {
|
|
102
|
-
"**/@types/node": ">=14.18"
|
|
103
|
-
"semantic-release/@semantic-release/npm/npm/**/ansi-regex": "5.0.1"
|
|
106
|
+
"**/@types/node": ">=14.18"
|
|
104
107
|
},
|
|
105
108
|
"scripts": {
|
|
106
109
|
"build": "ts-node --transpile-only src/skuba build && scripts/postbuild.sh",
|
|
@@ -124,5 +127,5 @@
|
|
|
124
127
|
"version": "4.0.0"
|
|
125
128
|
},
|
|
126
129
|
"types": "./lib/index.d.ts",
|
|
127
|
-
"version": "4.
|
|
130
|
+
"version": "4.3.0-beta.0"
|
|
128
131
|
}
|
|
@@ -9,7 +9,7 @@ configs:
|
|
|
9
9
|
NPM_READ_TOKEN: arn:aws:secretsmanager:ap-southeast-2:987872074697:secret:npm/npm-read-token
|
|
10
10
|
|
|
11
11
|
- &docker-ecr-cache
|
|
12
|
-
seek-oss/docker-ecr-cache#
|
|
12
|
+
seek-oss/docker-ecr-cache#v2.0.0:
|
|
13
13
|
cache-on:
|
|
14
14
|
- package.json
|
|
15
15
|
- yarn.lock
|
|
@@ -53,6 +53,7 @@ steps:
|
|
|
53
53
|
- *docker-ecr-cache
|
|
54
54
|
- docker-compose#v3.9.0:
|
|
55
55
|
run: app
|
|
56
|
+
timeout_in_minutes: 10
|
|
56
57
|
|
|
57
58
|
- label: 📦 Build & Package
|
|
58
59
|
depends_on: warm-prod
|
|
@@ -60,7 +61,7 @@ steps:
|
|
|
60
61
|
- *aws-sm
|
|
61
62
|
- *private-npm
|
|
62
63
|
- *docker-ecr-cache
|
|
63
|
-
- seek-jobs/gantry#v1.
|
|
64
|
+
- seek-jobs/gantry#v1.8.1:
|
|
64
65
|
command: build
|
|
65
66
|
file: gantry.build.yml
|
|
66
67
|
region: <%- region %>
|
|
@@ -77,7 +78,7 @@ steps:
|
|
|
77
78
|
concurrency_group: <%- teamName %>/deploy/gantry/<%- devGantryEnvironmentName %>
|
|
78
79
|
key: deploy-dev
|
|
79
80
|
plugins:
|
|
80
|
-
- seek-jobs/gantry#v1.
|
|
81
|
+
- seek-jobs/gantry#v1.8.1:
|
|
81
82
|
command: apply
|
|
82
83
|
environment: <%- devGantryEnvironmentName %>
|
|
83
84
|
file: gantry.apply.yml
|
|
@@ -92,7 +93,7 @@ steps:
|
|
|
92
93
|
concurrency_group: <%- teamName %>/deploy/gantry/<%- prodGantryEnvironmentName %>
|
|
93
94
|
depends_on: deploy-dev
|
|
94
95
|
plugins:
|
|
95
|
-
- seek-jobs/gantry#v1.
|
|
96
|
+
- seek-jobs/gantry#v1.8.1:
|
|
96
97
|
command: apply
|
|
97
98
|
environment: <%- prodGantryEnvironmentName %>
|
|
98
99
|
file: gantry.apply.yml
|