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.
Files changed (79) hide show
  1. package/README.md +1 -1
  2. package/jest-preset.js +5 -1
  3. package/lib/api/git/index.d.ts +1 -0
  4. package/lib/api/git/index.js +3 -1
  5. package/lib/api/git/index.js.map +1 -1
  6. package/lib/api/git/pull.d.ts +35 -0
  7. package/lib/api/git/pull.js +34 -0
  8. package/lib/api/git/pull.js.map +1 -0
  9. package/lib/api/github/index.d.ts +1 -0
  10. package/lib/api/github/index.js +5 -1
  11. package/lib/api/github/index.js.map +1 -1
  12. package/lib/api/github/push.d.ts +62 -0
  13. package/lib/api/github/push.js +133 -0
  14. package/lib/api/github/push.js.map +1 -0
  15. package/lib/api/jest/index.d.ts +26 -11
  16. package/lib/cli/adapter/eslint.d.ts +2 -1
  17. package/lib/cli/adapter/eslint.js +5 -1
  18. package/lib/cli/adapter/eslint.js.map +1 -1
  19. package/lib/cli/configure/analysis/diff.d.ts +1 -1
  20. package/lib/cli/configure/analysis/package.d.ts +1 -1
  21. package/lib/cli/configure/processing/ignoreFile.d.ts +1 -1
  22. package/lib/cli/configure/processing/javascript.d.ts +1 -1
  23. package/lib/cli/configure/processing/json.d.ts +1 -1
  24. package/lib/cli/configure/processing/package.d.ts +11 -11
  25. package/lib/cli/lint/annotate/buildkite/index.js.map +1 -1
  26. package/lib/cli/lint/autofix.d.ts +7 -1
  27. package/lib/cli/lint/autofix.js +35 -18
  28. package/lib/cli/lint/autofix.js.map +1 -1
  29. package/lib/cli/lint/external.d.ts +1 -0
  30. package/lib/cli/lint/external.js +16 -16
  31. package/lib/cli/lint/external.js.map +1 -1
  32. package/lib/cli/test/reporters/github/annotations.js +19 -7
  33. package/lib/cli/test/reporters/github/annotations.js.map +1 -1
  34. package/lib/cli/test/reporters/github/index.d.ts +2 -2
  35. package/lib/cli/test/reporters/github/index.js +11 -1
  36. package/lib/cli/test/reporters/github/index.js.map +1 -1
  37. package/lib/utils/args.js +1 -1
  38. package/lib/utils/args.js.map +1 -1
  39. package/lib/utils/error.d.ts +14 -0
  40. package/lib/utils/error.js +14 -1
  41. package/lib/utils/error.js.map +1 -1
  42. package/lib/utils/version.js +3 -4
  43. package/lib/utils/version.js.map +1 -1
  44. package/lib/utils/wait.d.ts +17 -0
  45. package/lib/utils/wait.js +32 -0
  46. package/lib/utils/wait.js.map +1 -0
  47. package/lib/wrapper/http.d.ts +1 -1
  48. package/package.json +23 -20
  49. package/template/express-rest-api/.buildkite/pipeline.yml +5 -4
  50. package/template/express-rest-api/package.json +1 -1
  51. package/template/greeter/.buildkite/pipeline.yml +2 -1
  52. package/template/koa-rest-api/.buildkite/pipeline.yml +5 -4
  53. package/template/koa-rest-api/package.json +6 -6
  54. package/template/koa-rest-api/src/api/jobs/getJobs.ts +2 -2
  55. package/template/koa-rest-api/src/api/jobs/postJob.ts +2 -2
  56. package/template/koa-rest-api/src/framework/logging.ts +8 -5
  57. package/template/koa-rest-api/src/framework/metrics.ts +2 -2
  58. package/template/koa-rest-api/src/framework/server.test.ts +21 -21
  59. package/template/koa-rest-api/src/framework/server.ts +4 -3
  60. package/template/koa-rest-api/src/listen.ts +2 -2
  61. package/template/koa-rest-api/src/testing/logging.ts +5 -20
  62. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +2 -1
  63. package/template/lambda-sqs-worker/.nvmrc +1 -1
  64. package/template/lambda-sqs-worker/Dockerfile +1 -1
  65. package/template/lambda-sqs-worker/package.json +5 -5
  66. package/template/lambda-sqs-worker/serverless.yml +2 -2
  67. package/template/lambda-sqs-worker/src/app.test.ts +9 -9
  68. package/template/lambda-sqs-worker/src/app.ts +2 -1
  69. package/template/lambda-sqs-worker/src/framework/handler.test.ts +10 -10
  70. package/template/lambda-sqs-worker/src/framework/handler.ts +14 -17
  71. package/template/lambda-sqs-worker/src/framework/logging.ts +11 -6
  72. package/template/lambda-sqs-worker/src/testing/logging.ts +7 -5
  73. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -1
  74. package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
  75. package/template/lambda-sqs-worker-cdk/Dockerfile +1 -1
  76. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +2 -2
  77. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +1 -1
  78. package/template/lambda-sqs-worker-cdk/package.json +9 -11
  79. package/template/private-npm-package/.buildkite/pipeline.yml +1 -1
@@ -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 (input) => {
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)(input.debug);
81
- await (0, eslint_1.runESLint)('format', logger);
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
- const ref = await Git.commitAllChanges({
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
- message: AUTOFIX_COMMIT_MESSAGE,
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":"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"}
1
+ {"version":3,"file":"autofix.js","sourceRoot":"","sources":["../../../src/cli/lint/autofix.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  /// <reference types="node" />
2
+ /// <reference types="node" />
2
3
  import stream from 'stream';
3
4
  import type { Input } from './types';
4
5
  export declare class StreamInterceptor extends stream.Transform {
@@ -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 && prettier.ok && tscOk) {
78
- return;
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
- const tools = [
81
- ...(eslint.ok ? [] : ['ESLint']),
82
- ...(prettier.ok ? [] : ['Prettier']),
83
- ...(tscOk ? [] : ['tsc']),
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":"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"}
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 === 4) {
59
+ if (match?.length === 5) {
48
60
  return {
49
61
  annotation_level: 'failure',
50
- path: path_1.default.relative(cwd, match[1]),
51
- start_line: Number(match[2]),
52
- end_line: Number(match[2]),
53
- start_column: Number(match[3]),
54
- end_column: Number(match[3]),
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":"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"}
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../../../src/cli/test/reporters/github/annotations.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Context, Reporter } from '@jest/reporters';
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<Context>, { testResults }: AggregatedResult): Promise<void>;
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
- await GitHub.createCheckRun({
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;AAEhD,+CAA0D;AAE1D,MAAqB,cAAc;IACjC,KAAK,CAAC,aAAa,CACjB,SAAuB,EACvB,EAAE,WAAW,EAAoB;QAEjC,IAAI,CAAC,IAAA,oCAAsB,GAAE,EAAE;YAC7B,OAAO;SACR;QAED,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,MAAM,CAAC,cAAc,CAAC;oBAC1B,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,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;SAC1B;IACH,CAAC;CACF;AAtCD,iCAsCC"}
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(',').includes('artefacts:npm'));
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.
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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)) {
@@ -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"}
@@ -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 sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
+ const wait_1 = require("./wait");
10
10
  const latestSkubaVersion = async () => {
11
11
  try {
12
- // Don't pull an Apple; bail out before holding up the command for too long
13
- const result = await Promise.race([(0, latest_version_1.default)('skuba'), sleep(2000)]);
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;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2C;AAE3C,yCAA8C;AAE9C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAC3B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE1D,MAAM,kBAAkB,GAAG,KAAK,IAA4B,EAAE;IAC5D,IAAI;QACF,2EAA2E;QAC3E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAA,wBAAa,EAAC,OAAO,CAAC,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC,CAAC,CAAC;QAE1E,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;KACnD;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"}
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"}
@@ -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 | undefined) => Promise<void>;
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": "^27.4.0",
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.16",
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": "^27.4.5",
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": "^27.1.2",
43
- "ts-node": "^10.5.0",
44
- "ts-node-dev": "^2.0.0-0",
45
- "tsconfig-paths": "^3.11.0",
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.6.2"
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": "27.5.1",
54
- "@types/ejs": "3.1.0",
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.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.2",
64
- "express": "4.17.3",
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.1",
68
- "semver": "7.3.5",
69
- "supertest": "6.2.2",
70
- "type-fest": "2.12.1"
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.2.1-beta.0"
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#v1.11.0:
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.7.0:
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.7.0:
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.7.0:
96
+ - seek-jobs/gantry#v1.8.1:
96
97
  command: apply
97
98
  environment: <%- prodGantryEnvironmentName %>
98
99
  file: gantry.apply.yml