skuba 4.2.2 → 4.3.1

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 (72) 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 +73 -0
  13. package/lib/api/github/push.js +148 -0
  14. package/lib/api/github/push.js.map +1 -0
  15. package/lib/api/jest/index.d.ts +20 -20
  16. package/lib/cli/configure/analyseDependencies.js +1 -2
  17. package/lib/cli/configure/analyseDependencies.js.map +1 -1
  18. package/lib/cli/configure/analysis/diff.d.ts +1 -1
  19. package/lib/cli/configure/analysis/package.d.ts +1 -1
  20. package/lib/cli/configure/processing/ignoreFile.d.ts +1 -1
  21. package/lib/cli/configure/processing/javascript.d.ts +1 -1
  22. package/lib/cli/configure/processing/json.d.ts +1 -1
  23. package/lib/cli/configure/processing/package.d.ts +12 -12
  24. package/lib/cli/lint/autofix.js +24 -13
  25. package/lib/cli/lint/autofix.js.map +1 -1
  26. package/lib/cli/lint/external.d.ts +1 -0
  27. package/lib/cli/test/reporters/github/annotations.js +23 -8
  28. package/lib/cli/test/reporters/github/annotations.js.map +1 -1
  29. package/lib/utils/args.d.ts +1 -1
  30. package/lib/utils/error.d.ts +1 -1
  31. package/lib/utils/version.d.ts +1 -0
  32. package/lib/utils/version.js +11 -3
  33. package/lib/utils/version.js.map +1 -1
  34. package/lib/wrapper/http.d.ts +1 -1
  35. package/package.json +46 -17
  36. package/template/express-rest-api/.buildkite/pipeline.yml +4 -4
  37. package/template/express-rest-api/.gantry/common.yml +1 -1
  38. package/template/express-rest-api/Dockerfile +1 -1
  39. package/template/express-rest-api/Dockerfile.dev-deps +1 -1
  40. package/template/express-rest-api/README.md +11 -14
  41. package/template/express-rest-api/gantry.apply.yml +2 -0
  42. package/template/express-rest-api/gantry.build.yml +2 -0
  43. package/template/express-rest-api/package.json +1 -1
  44. package/template/greeter/.buildkite/pipeline.yml +1 -1
  45. package/template/greeter/Dockerfile +1 -1
  46. package/template/greeter/README.md +12 -15
  47. package/template/koa-rest-api/.buildkite/pipeline.yml +4 -4
  48. package/template/koa-rest-api/.gantry/common.yml +1 -1
  49. package/template/koa-rest-api/Dockerfile +1 -1
  50. package/template/koa-rest-api/Dockerfile.dev-deps +1 -1
  51. package/template/koa-rest-api/README.md +11 -14
  52. package/template/koa-rest-api/gantry.apply.yml +2 -0
  53. package/template/koa-rest-api/gantry.build.yml +2 -0
  54. package/template/koa-rest-api/package.json +6 -6
  55. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +2 -3
  56. package/template/lambda-sqs-worker/Dockerfile +1 -1
  57. package/template/lambda-sqs-worker/README.md +10 -13
  58. package/template/lambda-sqs-worker/package.json +1 -1
  59. package/template/lambda-sqs-worker/serverless.yml +0 -3
  60. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  61. package/template/lambda-sqs-worker-cdk/Dockerfile +1 -1
  62. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +6 -0
  63. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +1 -0
  64. package/template/oss-npm-package/README.md +9 -11
  65. package/template/private-npm-package/README.md +6 -12
  66. package/template/express-rest-api/.me +0 -22
  67. package/template/greeter/.me +0 -20
  68. package/template/koa-rest-api/.me +0 -22
  69. package/template/lambda-sqs-worker/.me +0 -22
  70. package/template/lambda-sqs-worker-cdk/.me +0 -22
  71. package/template/oss-npm-package/.me +0 -21
  72. package/template/private-npm-package/.me +0 -21
@@ -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 {
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.generateAnnotationEntries = exports.createAnnotations = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
8
  const strip_ansi_1 = __importDefault(require("strip-ansi"));
9
+ const ts_dedent_1 = __importDefault(require("ts-dedent"));
9
10
  /**
10
11
  * Matches the first stack trace location in a Jest failure message.
11
12
  *
@@ -21,13 +22,25 @@ const strip_ansi_1 = __importDefault(require("strip-ansi"));
21
22
  * ...
22
23
  * ```
23
24
  *
25
+ * or:
26
+ *
27
+ * ```console
28
+ * Error: expect(received).toBe(expected) // Object.is equality
29
+ *
30
+ * Expected: "a"
31
+ * Received: "b"
32
+ * at /workdir/skuba/src/test.test.ts:2:15
33
+ * at Promise.then.completed (/workdir/skuba/node_modules/jest-circus/build/utils.js:390:28)
34
+ * ...
35
+ * ```
36
+ *
24
37
  * This pattern will produce the following matches:
25
38
  *
26
39
  * 1. /workdir/skuba/src/test.test.ts
27
40
  * 2. 2
28
41
  * 2. 15
29
42
  */
30
- const JEST_LOCATION_REGEX = /\((.+?):(\d+):(\d+)\)/;
43
+ const JEST_LOCATION_REGEX = /\n +at (.+\()?(.+?):(\d+):(\d+)/;
31
44
  const createAnnotations = (testResults) => {
32
45
  const cwd = process.cwd();
33
46
  return testResults.flatMap((testResult) => {
@@ -37,21 +50,23 @@ const createAnnotations = (testResults) => {
37
50
  path: path_1.default.relative(cwd, testResult.testFilePath),
38
51
  start_line: 1,
39
52
  end_line: 1,
40
- message: (0, strip_ansi_1.default)(testResult.testExecError.message),
53
+ message: (0, strip_ansi_1.default)(testResult.failureMessage
54
+ ? (0, ts_dedent_1.default)(testResult.failureMessage)
55
+ : testResult.testExecError.message),
41
56
  title: 'Jest',
42
57
  };
43
58
  }
44
59
  if (testResult.numFailingTests > 0) {
45
60
  return testResult.testResults.flatMap((assertionResult) => assertionResult.failureMessages.flatMap((failureMessage) => {
46
61
  const match = JEST_LOCATION_REGEX.exec(failureMessage);
47
- if (match?.length === 4) {
62
+ if (match?.length === 5) {
48
63
  return {
49
64
  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]),
65
+ path: path_1.default.relative(cwd, match[2]),
66
+ start_line: Number(match[3]),
67
+ end_line: Number(match[3]),
68
+ start_column: Number(match[4]),
69
+ end_column: Number(match[4]),
55
70
  message: (0, strip_ansi_1.default)(failureMessage),
56
71
  title: 'Jest',
57
72
  };
@@ -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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"}
@@ -15,7 +15,7 @@ export declare const hasSerialFlag: (args?: string[], env?: NodeJS.ProcessEnv) =
15
15
  * ```
16
16
  */
17
17
  export declare const parseProcessArgs: (args?: string[]) => {
18
- commandName: "format" | "node" | "test" | "release" | "build" | "build-package" | "configure" | "help" | "init" | "lint" | "start" | "version";
18
+ commandName: "format" | "node" | "test" | "release" | "version" | "build" | "build-package" | "configure" | "help" | "init" | "lint" | "start";
19
19
  args: string[];
20
20
  };
21
21
  interface RunArgs {
@@ -19,7 +19,7 @@ export declare const ConcurrentlyErrors: t.Array<t.Record<{
19
19
  *
20
20
  * https://nodejs.org/api/util.html#custom-inspection-functions-on-objects
21
21
  */
22
- export declare const createTerseError: (message?: string | undefined) => Error & {
22
+ export declare const createTerseError: (message?: string) => Error & {
23
23
  [inspect.custom]: () => string | undefined;
24
24
  };
25
25
  export declare const handleCliError: (err: unknown) => void;
@@ -1,3 +1,4 @@
1
+ export declare const latestNpmVersion: (packageName: string) => Promise<string>;
1
2
  export declare const getSkubaVersion: () => Promise<string>;
2
3
  declare type SkubaVersionInfo = {
3
4
  isStale: true;
@@ -3,13 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getSkubaVersionInfo = exports.getSkubaVersion = void 0;
7
- const latest_version_1 = __importDefault(require("latest-version"));
6
+ exports.getSkubaVersionInfo = exports.getSkubaVersion = exports.latestNpmVersion = void 0;
7
+ const package_json_1 = __importDefault(require("package-json"));
8
8
  const manifest_1 = require("./manifest");
9
9
  const wait_1 = require("./wait");
10
+ const latestNpmVersion = async (packageName) => {
11
+ const { version } = await (0, package_json_1.default)(packageName);
12
+ if (typeof version !== 'string') {
13
+ throw new Error(`No version found for package "${packageName}"`);
14
+ }
15
+ return version;
16
+ };
17
+ exports.latestNpmVersion = latestNpmVersion;
10
18
  const latestSkubaVersion = async () => {
11
19
  try {
12
- const result = await (0, wait_1.withTimeout)((0, latest_version_1.default)('skuba'), { s: 2 });
20
+ const result = await (0, wait_1.withTimeout)((0, exports.latestNpmVersion)('skuba'), { s: 2 });
13
21
  return result.ok ? result.value : null;
14
22
  }
15
23
  catch {
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAuC;AAEvC,yCAA8C;AAC9C,iCAAqC;AAE9B,MAAM,gBAAgB,GAAG,KAAK,EACnC,WAAmB,EACF,EAAE;IACnB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,sBAAW,EAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,iCAAiC,WAAW,GAAG,CAAC,CAAC;KAClE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEF,MAAM,kBAAkB,GAAG,KAAK,IAA4B,EAAE;IAC5D,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAW,EAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEtE,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"}
@@ -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/rest": "^18.12.0",
9
+ "@octokit/graphql": "^5.0.0",
10
+ "@octokit/graphql-schema": "^10.73.0",
11
+ "@octokit/rest": "^19.0.0",
10
12
  "@octokit/types": "^6.34.0",
11
- "@types/jest": "^27.5.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.1.0",
21
+ "eslint-config-skuba": "1.1.1",
20
22
  "execa": "^5.0.0",
21
23
  "fdir": "^5.0.0",
22
24
  "fs-extra": "^10.0.0",
@@ -26,48 +28,52 @@
26
28
  "is-installed-globally": "^0.4.0",
27
29
  "isomorphic-git": "^1.11.1",
28
30
  "jest": "^28.1.0",
29
- "latest-version": "^5.1.0",
31
+ "jest-watch-typeahead": "^2.0.0",
30
32
  "lodash.mergewith": "^4.6.2",
31
33
  "normalize-package-data": "^4.0.0",
32
34
  "npm-run-path": "^4.0.1",
33
35
  "npm-which": "^3.0.1",
36
+ "package-json": "^7.0.0",
34
37
  "picomatch": "^2.2.2",
35
- "prettier": "~2.6.0",
38
+ "prettier": "~2.7.0",
36
39
  "read-pkg-up": "^7.0.1",
37
40
  "runtypes": "^6.0.0",
38
41
  "semantic-release": "^19.0.0",
39
42
  "serialize-error": "^8.0.1",
40
43
  "simple-git": "^3.5.0",
41
44
  "strip-ansi": "^6.0.1",
45
+ "ts-dedent": "^2.2.0",
42
46
  "ts-jest": "^28.0.2",
43
47
  "ts-node": "^10.7.0",
44
- "ts-node-dev": "^2.0.0-0",
48
+ "ts-node-dev": "^2.0.0",
45
49
  "tsconfig-paths": "^4.0.0",
46
50
  "tsconfig-seek": "1.0.2",
47
- "typescript": "~4.6.4"
51
+ "typescript": "~4.7.0"
48
52
  },
49
53
  "description": "SEEK development toolkit for backend applications and packages",
50
54
  "devDependencies": {
51
- "@changesets/cli": "2.22.0",
52
- "@changesets/get-github-info": "0.5.0",
53
- "@jest/reporters": "28.1.0",
55
+ "@changesets/cli": "2.24.1",
56
+ "@changesets/get-github-info": "0.5.1",
57
+ "@jest/reporters": "28.1.3",
54
58
  "@types/ejs": "3.1.1",
55
59
  "@types/express": "4.17.13",
56
60
  "@types/fs-extra": "9.0.13",
57
- "@types/koa": "2.13.4",
61
+ "@types/koa": "2.13.5",
58
62
  "@types/lodash.mergewith": "4.6.7",
59
63
  "@types/module-alias": "2.0.1",
60
64
  "@types/npm-which": "3.0.1",
61
65
  "@types/picomatch": "2.3.0",
62
66
  "@types/supertest": "2.0.12",
63
- "enhanced-resolve": "5.9.3",
67
+ "enhanced-resolve": "5.10.0",
64
68
  "express": "4.18.1",
65
69
  "jsonfile": "6.1.0",
66
70
  "koa": "2.13.4",
67
- "memfs": "3.4.3",
71
+ "memfs": "3.4.7",
72
+ "remark-cli": "11.0.0",
73
+ "remark-preset-lint-recommended": "6.1.2",
68
74
  "semver": "7.3.7",
69
- "supertest": "6.2.3",
70
- "type-fest": "2.12.2"
75
+ "supertest": "6.2.4",
76
+ "type-fest": "2.18.0"
71
77
  },
72
78
  "engines": {
73
79
  "node": ">=14.18"
@@ -94,6 +100,28 @@
94
100
  }
95
101
  },
96
102
  "private": false,
103
+ "remarkConfig": {
104
+ "plugins": [
105
+ "remark-preset-lint-recommended",
106
+ [
107
+ "remark-lint-list-item-indent",
108
+ false
109
+ ],
110
+ [
111
+ "remark-lint-no-shortcut-reference-link",
112
+ false
113
+ ],
114
+ [
115
+ "remark-lint-no-undefined-references",
116
+ {
117
+ "allow": [
118
+ " ",
119
+ "x"
120
+ ]
121
+ }
122
+ ]
123
+ ]
124
+ },
97
125
  "repository": {
98
126
  "type": "git",
99
127
  "url": "git+https://github.com/seek-oss/skuba.git"
@@ -105,7 +133,8 @@
105
133
  "build": "ts-node --transpile-only src/skuba build && scripts/postbuild.sh",
106
134
  "deploy": "scripts/deploy.sh",
107
135
  "format": "yarn skuba format",
108
- "lint": "yarn skuba lint",
136
+ "lint": "yarn skuba lint && yarn lint:md",
137
+ "lint:md": "remark --frail --quiet .",
109
138
  "release": "yarn build && changeset publish",
110
139
  "stage": "changeset version && yarn format",
111
140
  "skuba": "yarn build && node lib/skuba",
@@ -123,5 +152,5 @@
123
152
  "version": "4.0.0"
124
153
  },
125
154
  "types": "./lib/index.d.ts",
126
- "version": "4.2.2"
155
+ "version": "4.3.1"
127
156
  }
@@ -51,7 +51,7 @@ steps:
51
51
  - *aws-sm
52
52
  - *private-npm
53
53
  - *docker-ecr-cache
54
- - docker-compose#v3.9.0:
54
+ - docker-compose#v3.10.0:
55
55
  run: app
56
56
  timeout_in_minutes: 10
57
57
 
@@ -61,7 +61,7 @@ steps:
61
61
  - *aws-sm
62
62
  - *private-npm
63
63
  - *docker-ecr-cache
64
- - seek-jobs/gantry#v1.7.0:
64
+ - seek-jobs/gantry#v2.0.0:
65
65
  command: build
66
66
  file: gantry.build.yml
67
67
  region: <%- region %>
@@ -78,7 +78,7 @@ steps:
78
78
  concurrency_group: <%- teamName %>/deploy/gantry/<%- devGantryEnvironmentName %>
79
79
  key: deploy-dev
80
80
  plugins:
81
- - seek-jobs/gantry#v1.7.0:
81
+ - seek-jobs/gantry#v2.0.0:
82
82
  command: apply
83
83
  environment: <%- devGantryEnvironmentName %>
84
84
  file: gantry.apply.yml
@@ -93,7 +93,7 @@ steps:
93
93
  concurrency_group: <%- teamName %>/deploy/gantry/<%- prodGantryEnvironmentName %>
94
94
  depends_on: deploy-dev
95
95
  plugins:
96
- - seek-jobs/gantry#v1.7.0:
96
+ - seek-jobs/gantry#v2.0.0:
97
97
  command: apply
98
98
  environment: <%- prodGantryEnvironmentName %>
99
99
  file: gantry.apply.yml
@@ -4,7 +4,7 @@ image: '{{values "prodAccountId"}}.dkr.ecr.<%- region %>.amazonaws.com/{{values
4
4
  service: '<%- serviceName %>'
5
5
 
6
6
  # TODO: enable Datadog agent
7
- # https://gantry.ssod.skinfra.xyz/docs/v1/resources/service.html#datadogSecretId
7
+ # https://backstage.myseek.xyz/docs/default/component/gantry/v1/reference/resources/service/#datadogSecretId
8
8
  # datadogSecretId: arn:aws:secretsmanager:<%- region %>:<aws-account-id>:secret:<secret-name>
9
9
 
10
10
  tags:
@@ -17,7 +17,7 @@ RUN yarn build
17
17
 
18
18
  ###
19
19
 
20
- FROM gcr.io/distroless/nodejs:16 AS runtime
20
+ FROM --platform=arm64 gcr.io/distroless/nodejs:16 AS runtime
21
21
 
22
22
  WORKDIR /workdir
23
23
 
@@ -1,6 +1,6 @@
1
1
  # syntax=docker/dockerfile:1.2
2
2
 
3
- FROM node:16-alpine AS dev-deps
3
+ FROM --platform=arm64 node:16-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
@@ -4,24 +4,26 @@
4
4
 
5
5
  Next steps:
6
6
 
7
- 1. [ ] Finish templating if this was skipped earlier:
7
+ 1. [ ] Check if your team has a Graviton-based Buildkite cluster;
8
+ see the [ARM64 guide] for more information.
9
+ 2. [ ] Finish templating if this was skipped earlier:
8
10
 
9
11
  ```shell
10
12
  yarn skuba configure
11
13
  ```
12
14
 
13
- 2. [ ] Create a new repository in the appropriate GitHub organisation.
14
- 3. [ ] Add the repository to BuildAgency;
15
+ 3. [ ] Create a new repository in the appropriate GitHub organisation.
16
+ 4. [ ] Add the repository to BuildAgency;
15
17
  see [Builds at SEEK] for more information.
16
- 4. [ ] Fill out [.me](.me) to power SEEK's system catalogue;
17
- see the [Codex] documentation for more information.
18
18
  5. [ ] Add Datadog configuration and data classification tags to [.gantry/common.yml](.gantry/common.yml);
19
19
  see the [Gantry] documentation for more information.
20
20
  6. [ ] Push local commits to the upstream GitHub branch.
21
21
  7. [ ] Configure [GitHub repository settings].
22
- 8. [ ] Keep dependencies up to date with [Renovate];
23
- request installation in [SEEK-Jobs/renovate].
24
- 9. [ ] Delete this checklist 😌.
22
+ 8. [ ] Delete this checklist 😌.
23
+
24
+ [arm64 guide]: https://seek-oss.github.io/skuba/docs/deep-dives/arm64.html
25
+ [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
26
+ [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
25
27
 
26
28
  ## Design
27
29
 
@@ -101,12 +103,7 @@ TODO: add support links for the prod environment.
101
103
  - Splunk logs
102
104
  -->
103
105
 
104
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
105
106
  [codedeploy]: https://docs.aws.amazon.com/codedeploy
106
- [codex]: https://codex.ssod.skinfra.xyz/docs
107
107
  [express]: https://expressjs.com
108
- [gantry]: https://gantry.ssod.skinfra.xyz
109
- [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
110
- [renovate]: https://github.com/apps/renovate
111
- [seek-jobs/renovate]: https://github.com/SEEK-Jobs/renovate
108
+ [gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
112
109
  [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
@@ -118,3 +118,5 @@ tags:
118
118
  {{range $key, $value := .Values.tags}}
119
119
  {{$key}}: '{{$value}}'
120
120
  {{end}}
121
+
122
+ cpuArchitecture: arm64
@@ -11,3 +11,5 @@ buildArgs:
11
11
 
12
12
  # SEEK-Jobs/gantry#1661
13
13
  failOnScanFindings: false
14
+
15
+ cpuArchitecture: arm64
@@ -8,7 +8,7 @@
8
8
  "@types/express": "^4.17.13",
9
9
  "@types/node": "^16.0.0",
10
10
  "@types/supertest": "^2.0.11",
11
- "pino-pretty": "^7.1.0",
11
+ "pino-pretty": "^8.0.0",
12
12
  "skuba": "*",
13
13
  "supertest": "^6.1.6"
14
14
  },
@@ -32,6 +32,6 @@ steps:
32
32
  - *aws-sm
33
33
  - *private-npm
34
34
  - *docker-ecr-cache
35
- - docker-compose#v3.9.0:
35
+ - docker-compose#v3.10.0:
36
36
  run: app
37
37
  timeout_in_minutes: 10
@@ -1,6 +1,6 @@
1
1
  # syntax=docker/dockerfile:1.2
2
2
 
3
- FROM node:16-alpine AS dev-deps
3
+ FROM --platform=arm64 node:16-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
@@ -4,22 +4,24 @@
4
4
 
5
5
  Next steps:
6
6
 
7
- 1. [ ] Finish templating if this was skipped earlier:
7
+ 1. [ ] Check if your team has a Graviton-based Buildkite cluster;
8
+ see the [ARM64 guide] for more information.
9
+ 2. [ ] Finish templating if this was skipped earlier:
8
10
 
9
11
  ```shell
10
12
  yarn skuba configure
11
13
  ```
12
14
 
13
- 2. [ ] Create a new repository in the appropriate GitHub organisation.
14
- 3. [ ] Add the repository to BuildAgency;
15
+ 3. [ ] Create a new repository in the appropriate GitHub organisation.
16
+ 4. [ ] Add the repository to BuildAgency;
15
17
  see [Builds at SEEK] for more information.
16
- 4. [ ] Fill out [.me](.me) to power SEEK's system catalogue;
17
- see the [Codex] documentation for more information.
18
18
  5. [ ] Push local commits to the upstream GitHub branch.
19
19
  6. [ ] Configure [GitHub repository settings].
20
- 7. [ ] Keep dependencies up to date with [Renovate];
21
- request installation in [SEEK-Jobs/renovate].
22
- 8. [ ] Delete this checklist 😌.
20
+ 7. [ ] Delete this checklist 😌.
21
+
22
+ [arm64 guide]: https://seek-oss.github.io/skuba/docs/deep-dives/arm64.html
23
+ [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
24
+ [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
23
25
 
24
26
  ## Design
25
27
 
@@ -29,8 +31,8 @@ or serve as a starting point for a backend project if the other built-in templat
29
31
 
30
32
  It's a barebones Node.js application that comprises:
31
33
 
32
- - A [src/app.ts] that can be run locally to greet the user
33
- - A [src/app.test.ts] that demonstrates rudimentary Jest usage
34
+ - A [src/app.ts](src/app.ts) that can be run locally to greet the user
35
+ - A [src/app.test.ts](src/app.test.ts) that demonstrates rudimentary Jest usage
34
36
 
35
37
  ## Development
36
38
 
@@ -94,9 +96,4 @@ TODO: add support links for the prod environment.
94
96
  - Splunk logs
95
97
  -->
96
98
 
97
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
98
- [codex]: https://codex.ssod.skinfra.xyz/docs
99
- [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
100
- [renovate]: https://github.com/apps/renovate
101
- [seek-jobs/renovate]: https://github.com/SEEK-Jobs/renovate
102
99
  [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
@@ -51,7 +51,7 @@ steps:
51
51
  - *aws-sm
52
52
  - *private-npm
53
53
  - *docker-ecr-cache
54
- - docker-compose#v3.9.0:
54
+ - docker-compose#v3.10.0:
55
55
  run: app
56
56
  timeout_in_minutes: 10
57
57
 
@@ -61,7 +61,7 @@ steps:
61
61
  - *aws-sm
62
62
  - *private-npm
63
63
  - *docker-ecr-cache
64
- - seek-jobs/gantry#v1.7.0:
64
+ - seek-jobs/gantry#v2.0.0:
65
65
  command: build
66
66
  file: gantry.build.yml
67
67
  region: <%- region %>
@@ -78,7 +78,7 @@ steps:
78
78
  concurrency_group: <%- teamName %>/deploy/gantry/<%- devGantryEnvironmentName %>
79
79
  key: deploy-dev
80
80
  plugins:
81
- - seek-jobs/gantry#v1.7.0:
81
+ - seek-jobs/gantry#v2.0.0:
82
82
  command: apply
83
83
  environment: <%- devGantryEnvironmentName %>
84
84
  file: gantry.apply.yml
@@ -93,7 +93,7 @@ steps:
93
93
  concurrency_group: <%- teamName %>/deploy/gantry/<%- prodGantryEnvironmentName %>
94
94
  depends_on: deploy-dev
95
95
  plugins:
96
- - seek-jobs/gantry#v1.7.0:
96
+ - seek-jobs/gantry#v2.0.0:
97
97
  command: apply
98
98
  environment: <%- prodGantryEnvironmentName %>
99
99
  file: gantry.apply.yml
@@ -4,7 +4,7 @@ image: '{{values "prodAccountId"}}.dkr.ecr.<%- region %>.amazonaws.com/{{values
4
4
  service: '<%- serviceName %>'
5
5
 
6
6
  # TODO: enable Datadog agent
7
- # https://gantry.ssod.skinfra.xyz/docs/v1/resources/service.html#datadogSecretId
7
+ # https://backstage.myseek.xyz/docs/default/component/gantry/v1/reference/resources/service/#datadogSecretId
8
8
  # datadogSecretId: arn:aws:secretsmanager:<%- region %>:<aws-account-id>:secret:<secret-name>
9
9
 
10
10
  tags:
@@ -17,7 +17,7 @@ RUN yarn build
17
17
 
18
18
  ###
19
19
 
20
- FROM gcr.io/distroless/nodejs:16 AS runtime
20
+ FROM --platform=arm64 gcr.io/distroless/nodejs:16 AS runtime
21
21
 
22
22
  WORKDIR /workdir
23
23
 
@@ -1,6 +1,6 @@
1
1
  # syntax=docker/dockerfile:1.2
2
2
 
3
- FROM node:16-alpine AS dev-deps
3
+ FROM --platform=arm64 node:16-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
@@ -4,24 +4,26 @@
4
4
 
5
5
  Next steps:
6
6
 
7
- 1. [ ] Finish templating if this was skipped earlier:
7
+ 1. [ ] Check if your team has a Graviton-based Buildkite cluster;
8
+ see the [ARM64 guide] for more information.
9
+ 2. [ ] Finish templating if this was skipped earlier:
8
10
 
9
11
  ```shell
10
12
  yarn skuba configure
11
13
  ```
12
14
 
13
- 2. [ ] Create a new repository in the appropriate GitHub organisation.
14
- 3. [ ] Add the repository to BuildAgency;
15
+ 3. [ ] Create a new repository in the appropriate GitHub organisation.
16
+ 4. [ ] Add the repository to BuildAgency;
15
17
  see [Builds at SEEK] for more information.
16
- 4. [ ] Fill out [.me](.me) to power SEEK's system catalogue;
17
- see the [Codex] documentation for more information.
18
18
  5. [ ] Add Datadog configuration and data classification tags to [.gantry/common.yml](.gantry/common.yml);
19
19
  see the [Gantry] documentation for more information.
20
20
  6. [ ] Push local commits to the upstream GitHub branch.
21
21
  7. [ ] Configure [GitHub repository settings].
22
- 8. [ ] Keep dependencies up to date with [Renovate];
23
- request installation in [SEEK-Jobs/renovate].
24
- 9. [ ] Delete this checklist 😌.
22
+ 8. [ ] Delete this checklist 😌.
23
+
24
+ [arm64 guide]: https://seek-oss.github.io/skuba/docs/deep-dives/arm64.html
25
+ [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
26
+ [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
25
27
 
26
28
  ## Design
27
29
 
@@ -106,12 +108,7 @@ TODO: add support links for the prod environment.
106
108
  - Splunk logs
107
109
  -->
108
110
 
109
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
110
111
  [codedeploy]: https://docs.aws.amazon.com/codedeploy
111
- [codex]: https://codex.ssod.skinfra.xyz/docs
112
- [gantry]: https://gantry.ssod.skinfra.xyz
113
- [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
112
+ [gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
114
113
  [koa]: https://koajs.com
115
- [renovate]: https://github.com/apps/renovate
116
- [seek-jobs/renovate]: https://github.com/SEEK-Jobs/renovate
117
114
  [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
@@ -125,3 +125,5 @@ tags:
125
125
  {{range $key, $value := .Values.tags}}
126
126
  {{$key}}: '{{$value}}'
127
127
  {{end}}
128
+
129
+ cpuArchitecture: arm64