skuba 0.0.0-master-20231002013336 → 0.0.0-master-20231121000709

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 (65) hide show
  1. package/lib/api/jest/index.d.ts +2 -2
  2. package/lib/api/jest/index.js +19 -1
  3. package/lib/api/jest/index.js.map +2 -2
  4. package/lib/api/net/compose.js +2 -1
  5. package/lib/api/net/compose.js.map +2 -2
  6. package/lib/cli/configure/getProjectType.d.ts +1 -1
  7. package/lib/cli/configure/getProjectType.js +5 -2
  8. package/lib/cli/configure/getProjectType.js.map +2 -2
  9. package/lib/cli/configure/index.js +0 -4
  10. package/lib/cli/configure/index.js.map +2 -2
  11. package/lib/cli/configure/patchRenovateConfig.js +13 -11
  12. package/lib/cli/configure/patchRenovateConfig.js.map +2 -2
  13. package/lib/cli/init/getConfig.d.ts +3 -3
  14. package/lib/cli/init/getConfig.js +8 -8
  15. package/lib/cli/init/getConfig.js.map +2 -2
  16. package/lib/cli/init/index.js +0 -1
  17. package/lib/cli/init/index.js.map +2 -2
  18. package/lib/cli/init/types.d.ts +99 -27
  19. package/lib/cli/init/types.js +26 -35
  20. package/lib/cli/init/types.js.map +2 -2
  21. package/lib/utils/error.d.ts +30 -10
  22. package/lib/utils/error.js +10 -20
  23. package/lib/utils/error.js.map +2 -2
  24. package/lib/utils/exec.js +2 -2
  25. package/lib/utils/exec.js.map +2 -2
  26. package/lib/utils/manifest.d.ts +3 -3
  27. package/lib/utils/manifest.js +9 -9
  28. package/lib/utils/manifest.js.map +2 -2
  29. package/lib/utils/template.d.ts +43 -13
  30. package/lib/utils/template.js +15 -15
  31. package/lib/utils/template.js.map +2 -2
  32. package/package.json +21 -21
  33. package/template/express-rest-api/.buildkite/pipeline.yml +3 -2
  34. package/template/express-rest-api/.nvmrc +1 -1
  35. package/template/express-rest-api/Dockerfile +1 -1
  36. package/template/express-rest-api/Dockerfile.dev-deps +3 -3
  37. package/template/express-rest-api/README.md +6 -6
  38. package/template/express-rest-api/package.json +2 -2
  39. package/template/greeter/.buildkite/pipeline.yml +3 -2
  40. package/template/greeter/.nvmrc +1 -1
  41. package/template/greeter/Dockerfile +3 -3
  42. package/template/greeter/README.md +3 -3
  43. package/template/greeter/package.json +2 -2
  44. package/template/koa-rest-api/.buildkite/pipeline.yml +3 -2
  45. package/template/koa-rest-api/Dockerfile +1 -1
  46. package/template/koa-rest-api/Dockerfile.dev-deps +3 -3
  47. package/template/koa-rest-api/README.md +6 -6
  48. package/template/koa-rest-api/package.json +5 -5
  49. package/template/koa-rest-api/src/app.test.ts +8 -4
  50. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +4 -3
  51. package/template/lambda-sqs-worker/.nvmrc +1 -1
  52. package/template/lambda-sqs-worker/Dockerfile +3 -3
  53. package/template/lambda-sqs-worker/README.md +6 -6
  54. package/template/lambda-sqs-worker/package.json +3 -3
  55. package/template/lambda-sqs-worker/serverless.yml +1 -1
  56. package/template/lambda-sqs-worker/src/framework/validation.test.ts +1 -1
  57. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +4 -3
  58. package/template/lambda-sqs-worker-cdk/Dockerfile +3 -3
  59. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +2 -2
  60. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +1 -1
  61. package/template/lambda-sqs-worker-cdk/package.json +4 -4
  62. package/template/oss-npm-package/.nvmrc +1 -1
  63. package/template/oss-npm-package/README.md +1 -1
  64. package/template/private-npm-package/.nvmrc +1 -1
  65. package/template/private-npm-package/README.md +2 -2
@@ -14,11 +14,12 @@ configs:
14
14
  - package.json
15
15
  - yarn.lock
16
16
  dockerfile: Dockerfile.dev-deps
17
- secrets: id=npm,src=.npmrc
17
+ secrets: id=npm,src=tmp/.npmrc
18
18
 
19
19
  - &private-npm
20
20
  seek-oss/private-npm#v1.2.0:
21
21
  env: NPM_READ_TOKEN
22
+ output-path: tmp/
22
23
 
23
24
  base-steps:
24
25
  - &deploy
@@ -53,7 +54,7 @@ steps:
53
54
  - *aws-sm
54
55
  - *private-npm
55
56
  - *docker-ecr-cache
56
- - docker-compose#v4.14.0:
57
+ - docker-compose#v4.16.0:
57
58
  run: app
58
59
  timeout_in_minutes: 10
59
60
 
@@ -1 +1 @@
1
- 18
1
+ 20
@@ -17,7 +17,7 @@ RUN yarn build
17
17
 
18
18
  ###
19
19
 
20
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} gcr.io/distroless/nodejs18-debian11 AS runtime
20
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} gcr.io/distroless/nodejs20-debian11 AS runtime
21
21
 
22
22
  WORKDIR /workdir
23
23
 
@@ -1,11 +1,11 @@
1
- # syntax=docker/dockerfile:1.2
1
+ # syntax=docker/dockerfile:1.6
2
2
 
3
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:18-alpine AS dev-deps
3
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:20-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
7
7
  COPY package.json yarn.lock ./
8
8
 
9
9
  RUN \
10
- --mount=type=secret,id=npm,dst=/workdir/.npmrc \
10
+ --mount=type=secret,id=npm,dst=/root/.npmrc \
11
11
  yarn install --frozen-lockfile --ignore-optional --non-interactive
@@ -19,12 +19,12 @@ Next steps:
19
19
  6. [ ] Configure [GitHub repository settings].
20
20
  7. [ ] Delete this checklist 😌.
21
21
 
22
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
22
+ [builds at seek]: https://backstage.myseek.xyz/docs/default/component/builds-cicd-seek/
23
23
  [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
24
24
 
25
25
  ## Design
26
26
 
27
- <%-repoName %> is a Node.js HTTP server built in line with our [technology strategy].
27
+ <%-repoName %> is a Node.js HTTP server built in line with our [Technical Guidelines].
28
28
  It uses the [Express] middleware framework and common SEEK packages.
29
29
  Resource APIs enable synchronous interactions and serve as the backbone of SEEK's general service architecture.
30
30
 
@@ -100,7 +100,7 @@ TODO: add support links for the prod environment.
100
100
  - Splunk logs
101
101
  -->
102
102
 
103
- [codedeploy]: https://docs.aws.amazon.com/codedeploy
104
- [express]: https://expressjs.com
105
- [gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
106
- [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
103
+ [CodeDeploy]: https://docs.aws.amazon.com/codedeploy
104
+ [Express]: https://expressjs.com
105
+ [Gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
106
+ [Technical Guidelines]: https://myseek.atlassian.net/wiki/spaces/AA/pages/2358346017/
@@ -18,13 +18,13 @@
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/express": "^4.17.13",
21
- "@types/node": "^18.11.5",
21
+ "@types/node": "^20.9.0",
22
22
  "@types/supertest": "^2.0.11",
23
23
  "pino-pretty": "^10.0.0",
24
24
  "skuba": "*",
25
25
  "supertest": "^6.1.6"
26
26
  },
27
27
  "engines": {
28
- "node": ">=18.12"
28
+ "node": ">=20"
29
29
  }
30
30
  }
@@ -13,11 +13,12 @@ configs:
13
13
  cache-on:
14
14
  - package.json
15
15
  - yarn.lock
16
- secrets: id=npm,src=.npmrc
16
+ secrets: id=npm,src=tmp/.npmrc
17
17
 
18
18
  - &private-npm
19
19
  seek-oss/private-npm#v1.2.0:
20
20
  env: NPM_READ_TOKEN
21
+ output-path: tmp/
21
22
 
22
23
  steps:
23
24
  - label: 🧪 Test & Lint
@@ -32,6 +33,6 @@ steps:
32
33
  - *aws-sm
33
34
  - *private-npm
34
35
  - *docker-ecr-cache
35
- - docker-compose#v4.14.0:
36
+ - docker-compose#v4.16.0:
36
37
  run: app
37
38
  timeout_in_minutes: 10
@@ -1 +1 @@
1
- 18
1
+ 20
@@ -1,11 +1,11 @@
1
- # syntax=docker/dockerfile:1.2
1
+ # syntax=docker/dockerfile:1.6
2
2
 
3
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:18-alpine AS dev-deps
3
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:20-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
7
7
  COPY package.json yarn.lock ./
8
8
 
9
9
  RUN \
10
- --mount=type=secret,id=npm,dst=/workdir/.npmrc \
10
+ --mount=type=secret,id=npm,dst=/root/.npmrc \
11
11
  yarn install --frozen-lockfile --ignore-optional --non-interactive
@@ -17,13 +17,13 @@ Next steps:
17
17
  5. [ ] Configure [GitHub repository settings].
18
18
  6. [ ] Delete this checklist 😌.
19
19
 
20
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
20
+ [builds at seek]: https://backstage.myseek.xyz/docs/default/component/builds-cicd-seek/
21
21
  [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
22
22
 
23
23
  ## Design
24
24
 
25
25
  The `greeter` template is the prototypical _hello world_ project.
26
- It can function as a playground for the TypeScript tooling prescribed by our [technology strategy],
26
+ It can function as a playground for the TypeScript tooling prescribed by our [Technical Guidelines],
27
27
  or serve as a starting point for a backend project if the other built-in templates are not a good fit.
28
28
 
29
29
  It's a barebones Node.js application that comprises:
@@ -93,4 +93,4 @@ TODO: add support links for the prod environment.
93
93
  - Splunk logs
94
94
  -->
95
95
 
96
- [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
96
+ [Technical Guidelines]: https://myseek.atlassian.net/wiki/spaces/AA/pages/2358346017/
@@ -15,10 +15,10 @@
15
15
  "skuba-dive": "^2.0.0"
16
16
  },
17
17
  "devDependencies": {
18
- "@types/node": "^18.11.5",
18
+ "@types/node": "^20.9.0",
19
19
  "skuba": "*"
20
20
  },
21
21
  "engines": {
22
- "node": ">=18.12"
22
+ "node": ">=20"
23
23
  }
24
24
  }
@@ -14,11 +14,12 @@ configs:
14
14
  - package.json
15
15
  - yarn.lock
16
16
  dockerfile: Dockerfile.dev-deps
17
- secrets: id=npm,src=.npmrc
17
+ secrets: id=npm,src=tmp/.npmrc
18
18
 
19
19
  - &private-npm
20
20
  seek-oss/private-npm#v1.2.0:
21
21
  env: NPM_READ_TOKEN
22
+ output-path: tmp/
22
23
 
23
24
  base-steps:
24
25
  - &deploy
@@ -53,7 +54,7 @@ steps:
53
54
  - *aws-sm
54
55
  - *private-npm
55
56
  - *docker-ecr-cache
56
- - docker-compose#v4.14.0:
57
+ - docker-compose#v4.16.0:
57
58
  run: app
58
59
  timeout_in_minutes: 10
59
60
 
@@ -17,7 +17,7 @@ RUN yarn build
17
17
 
18
18
  ###
19
19
 
20
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} gcr.io/distroless/nodejs18-debian11 AS runtime
20
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} gcr.io/distroless/nodejs20-debian11 AS runtime
21
21
 
22
22
  WORKDIR /workdir
23
23
 
@@ -1,11 +1,11 @@
1
- # syntax=docker/dockerfile:1.2
1
+ # syntax=docker/dockerfile:1.6
2
2
 
3
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:18-alpine AS dev-deps
3
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:20-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
7
7
  COPY package.json yarn.lock ./
8
8
 
9
9
  RUN \
10
- --mount=type=secret,id=npm,dst=/workdir/.npmrc \
10
+ --mount=type=secret,id=npm,dst=/root/.npmrc \
11
11
  yarn install --frozen-lockfile --ignore-optional --non-interactive
@@ -19,12 +19,12 @@ Next steps:
19
19
  6. [ ] Configure [GitHub repository settings].
20
20
  7. [ ] Delete this checklist 😌.
21
21
 
22
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
22
+ [builds at seek]: https://backstage.myseek.xyz/docs/default/component/builds-cicd-seek/
23
23
  [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
24
24
 
25
25
  ## Design
26
26
 
27
- <%-repoName %> is a Node.js HTTP server built in line with our [technology strategy].
27
+ <%-repoName %> is a Node.js HTTP server built in line with our [Technical Guidelines].
28
28
  It uses the [Koa] middleware framework and common SEEK packages.
29
29
  Resource APIs enable synchronous interactions and serve as the backbone of SEEK's general service architecture.
30
30
 
@@ -105,7 +105,7 @@ TODO: add support links for the prod environment.
105
105
  - Splunk logs
106
106
  -->
107
107
 
108
- [codedeploy]: https://docs.aws.amazon.com/codedeploy
109
- [gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
110
- [koa]: https://koajs.com
111
- [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
108
+ [CodeDeploy]: https://docs.aws.amazon.com/codedeploy
109
+ [Gantry]: https://backstage.myseek.xyz/docs/default/component/gantry/
110
+ [Koa]: https://koajs.com
111
+ [Technical Guidelines]: https://myseek.atlassian.net/wiki/spaces/AA/pages/2358346017/
@@ -14,10 +14,10 @@
14
14
  "dependencies": {
15
15
  "@koa/router": "^12.0.0",
16
16
  "@opentelemetry/api": "^1.1.0",
17
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.43.0",
17
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.45.0",
18
18
  "@opentelemetry/instrumentation-aws-sdk": "^0.36.0",
19
- "@opentelemetry/instrumentation-http": "^0.43.0",
20
- "@opentelemetry/sdk-node": "^0.43.0",
19
+ "@opentelemetry/instrumentation-http": "^0.45.0",
20
+ "@opentelemetry/sdk-node": "^0.45.0",
21
21
  "@seek/logger": "^6.0.0",
22
22
  "aws-sdk": "^2.1039.0",
23
23
  "hot-shots": "^10.0.0",
@@ -34,7 +34,7 @@
34
34
  "@types/koa": "^2.13.4",
35
35
  "@types/koa-bodyparser": "^5.0.2",
36
36
  "@types/koa__router": "^12.0.0",
37
- "@types/node": "^18.11.5",
37
+ "@types/node": "^20.9.0",
38
38
  "@types/supertest": "^2.0.11",
39
39
  "chance": "^1.1.8",
40
40
  "pino-pretty": "^10.0.0",
@@ -42,6 +42,6 @@
42
42
  "supertest": "^6.1.6"
43
43
  },
44
44
  "engines": {
45
- "node": ">=18.12"
45
+ "node": ">=20"
46
46
  }
47
47
  }
@@ -10,11 +10,15 @@ describe('app', () => {
10
10
 
11
11
  it('has a happy health check', () => agent.get('/health').expect(200, ''));
12
12
 
13
- it('has a reachable smoke test', () =>
14
- agent.get('/smoke').expect(({ status }) => status !== 404));
13
+ it('has a reachable smoke test', async () => {
14
+ const response = await agent.get('/smoke');
15
+ expect(response.status).not.toBe(404);
16
+ });
15
17
 
16
- it('has a reachable nested route', () =>
17
- agent.get('/jobs').expect(({ status }) => status !== 404));
18
+ it('has a reachable nested route', async () => {
19
+ const response = await agent.get('/jobs');
20
+ expect(response.status).not.toBe(404);
21
+ });
18
22
 
19
23
  it('has OPTIONS for a nested route', () =>
20
24
  agent.options('/jobs').expect(200).expect('allow', /HEAD/));
@@ -13,11 +13,12 @@ configs:
13
13
  cache-on:
14
14
  - package.json
15
15
  - yarn.lock
16
- secrets: id=npm,src=.npmrc
16
+ secrets: id=npm,src=tmp/.npmrc
17
17
 
18
18
  - &private-npm
19
19
  seek-oss/private-npm#v1.2.0:
20
20
  env: NPM_READ_TOKEN
21
+ output-path: tmp/
21
22
 
22
23
  base-steps:
23
24
  - &deploy
@@ -32,7 +33,7 @@ configs:
32
33
  - *aws-sm
33
34
  - *private-npm
34
35
  - *docker-ecr-cache
35
- - docker-compose#v4.14.0:
36
+ - docker-compose#v4.16.0:
36
37
  dependencies: false
37
38
  run: app
38
39
  retry:
@@ -60,7 +61,7 @@ steps:
60
61
  - *aws-sm
61
62
  - *private-npm
62
63
  - *docker-ecr-cache
63
- - docker-compose#v4.14.0:
64
+ - docker-compose#v4.16.0:
64
65
  run: app
65
66
  timeout_in_minutes: 10
66
67
 
@@ -1 +1 @@
1
- 18
1
+ 20
@@ -1,12 +1,12 @@
1
- # syntax=docker/dockerfile:1.2
1
+ # syntax=docker/dockerfile:1.6
2
2
 
3
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:18-alpine AS dev-deps
3
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:20-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
7
7
  COPY package.json yarn.lock ./
8
8
 
9
9
  RUN \
10
- --mount=type=secret,id=npm,dst=/workdir/.npmrc \
10
+ --mount=type=secret,id=npm,dst=/root/.npmrc \
11
11
  yarn install --frozen-lockfile --ignore-optional --non-interactive && \
12
12
  yarn cache clean
@@ -18,12 +18,12 @@ Next steps:
18
18
  6. [ ] Configure [GitHub repository settings].
19
19
  7. [ ] Delete this checklist 😌.
20
20
 
21
- [builds at seek]: https://builds-at-seek.ssod.skinfra.xyz
21
+ [builds at seek]: https://backstage.myseek.xyz/docs/default/component/builds-cicd-seek/
22
22
  [github repository settings]: https://github.com/<%-orgName%>/<%-repoName%>/settings
23
23
 
24
24
  ## Design
25
25
 
26
- <%-repoName %> is a Node.js [Lambda] application built in line with our [technology strategy].
26
+ <%-repoName %> is a Node.js [Lambda] application built in line with our [Technical Guidelines].
27
27
  It is backed by a typical SQS message + dead letter queue configuration and uses common SEEK packages.
28
28
  Workers enable fault-tolerant asynchronous processing of events.
29
29
 
@@ -126,7 +126,7 @@ TODO: add support links for the prod environment.
126
126
  - Splunk logs
127
127
  -->
128
128
 
129
- [codedeploy]: https://docs.aws.amazon.com/codedeploy
130
- [lambda]: https://docs.aws.amazon.com/lambda
131
- [serverless]: https://www.serverless.com/
132
- [technology strategy]: https://tech-strategy.ssod.skinfra.xyz
129
+ [CodeDeploy]: https://docs.aws.amazon.com/codedeploy
130
+ [Lambda]: https://docs.aws.amazon.com/lambda
131
+ [Serverless]: https://www.serverless.com/
132
+ [Technical Guidelines]: https://myseek.atlassian.net/wiki/spaces/AA/pages/2358346017/
@@ -27,18 +27,18 @@
27
27
  "devDependencies": {
28
28
  "@types/aws-lambda": "^8.10.84",
29
29
  "@types/chance": "^1.1.3",
30
- "@types/node": "^18.11.9",
30
+ "@types/node": "^20.9.0",
31
31
  "aws-sdk-client-mock": "^3.0.0",
32
32
  "aws-sdk-client-mock-jest": "^3.0.0",
33
33
  "chance": "^1.1.8",
34
34
  "pino-pretty": "^10.0.0",
35
- "serverless": "^3.25.0",
35
+ "serverless": "^3.37.0",
36
36
  "serverless-plugin-canary-deployments": "^0.8.0",
37
37
  "serverless-plugin-datadog": "^5.12.0",
38
38
  "serverless-prune-plugin": "^2.0.0",
39
39
  "skuba": "*"
40
40
  },
41
41
  "engines": {
42
- "node": ">=18.12"
42
+ "node": ">=20"
43
43
  }
44
44
  }
@@ -37,7 +37,7 @@ provider:
37
37
  logRetentionInDays: 30
38
38
  name: aws
39
39
  region: ap-southeast-2
40
- runtime: nodejs18.x
40
+ runtime: nodejs20.x
41
41
  architecture: <%- lambdaServerlessArchitecture %>
42
42
  deploymentMethod: direct
43
43
  stackName: ${self:service}
@@ -78,7 +78,7 @@ describe('validateJson', () => {
78
78
  expect(() =>
79
79
  validateJson(input, IdDescriptionSchema),
80
80
  ).toThrowErrorMatchingInlineSnapshot(
81
- `"Unexpected token } in JSON at position 0"`,
81
+ `"Unexpected token '}', "}" is not valid JSON"`,
82
82
  );
83
83
  });
84
84
  });
@@ -13,11 +13,12 @@ configs:
13
13
  cache-on:
14
14
  - package.json
15
15
  - yarn.lock
16
- secrets: id=npm,src=.npmrc
16
+ secrets: id=npm,src=tmp/.npmrc
17
17
 
18
18
  - &private-npm
19
19
  seek-oss/private-npm#v1.2.0:
20
20
  env: NPM_READ_TOKEN
21
+ output-path: tmp/
21
22
 
22
23
  base-steps:
23
24
  - &deploy
@@ -32,7 +33,7 @@ configs:
32
33
  - *aws-sm
33
34
  - *private-npm
34
35
  - *docker-ecr-cache
35
- - docker-compose#v4.14.0:
36
+ - docker-compose#v4.16.0:
36
37
  dependencies: false
37
38
  run: app
38
39
  retry:
@@ -57,7 +58,7 @@ steps:
57
58
  - *aws-sm
58
59
  - *private-npm
59
60
  - *docker-ecr-cache
60
- - docker-compose#v4.14.0:
61
+ - docker-compose#v4.16.0:
61
62
  run: app
62
63
  timeout_in_minutes: 10
63
64
 
@@ -1,13 +1,13 @@
1
- # syntax=docker/dockerfile:1.2
1
+ # syntax=docker/dockerfile:1.6
2
2
 
3
- FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:18-alpine AS dev-deps
3
+ FROM --platform=${BUILDPLATFORM:-<%- platformName %>} node:20-alpine AS dev-deps
4
4
 
5
5
  WORKDIR /workdir
6
6
 
7
7
  COPY package.json yarn.lock ./
8
8
 
9
9
  RUN \
10
- --mount=type=secret,id=npm,dst=/workdir/.npmrc \
10
+ --mount=type=secret,id=npm,dst=/root/.npmrc \
11
11
  yarn install --frozen-lockfile --ignore-optional --non-interactive && \
12
12
  yarn package && \
13
13
  yarn cache clean
@@ -176,7 +176,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
176
176
  "Arn",
177
177
  ],
178
178
  },
179
- "Runtime": "nodejs18.x",
179
+ "Runtime": "nodejs20.x",
180
180
  },
181
181
  "Type": "AWS::Lambda::Function",
182
182
  },
@@ -537,7 +537,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
537
537
  "Arn",
538
538
  ],
539
539
  },
540
- "Runtime": "nodejs18.x",
540
+ "Runtime": "nodejs20.x",
541
541
  },
542
542
  "Type": "AWS::Lambda::Function",
543
543
  },
@@ -55,7 +55,7 @@ export class AppStack extends Stack {
55
55
  const worker = new aws_lambda.Function(this, 'worker', {
56
56
  architecture: aws_lambda.Architecture[architecture],
57
57
  code: new aws_lambda.AssetCode('./lib'),
58
- runtime: aws_lambda.Runtime.NODEJS_18_X,
58
+ runtime: aws_lambda.Runtime.NODEJS_20_X,
59
59
  handler: 'app.handler',
60
60
  functionName: '<%- serviceName %>',
61
61
  environmentEncryption: kmsKey,
@@ -18,13 +18,13 @@
18
18
  "devDependencies": {
19
19
  "@aws-cdk/assert": "^2.24.0",
20
20
  "@types/aws-lambda": "^8.10.82",
21
- "@types/node": "^18.11.9",
22
- "aws-cdk": "^2.51.1",
23
- "aws-cdk-lib": "^2.51.1",
21
+ "@types/node": "^20.9.0",
22
+ "aws-cdk": "^2.109.0",
23
+ "aws-cdk-lib": "^2.109.0",
24
24
  "constructs": "^10.0.17",
25
25
  "skuba": "*"
26
26
  },
27
27
  "engines": {
28
- "node": ">=18.12"
28
+ "node": ">=20"
29
29
  }
30
30
  }
@@ -1 +1 @@
1
- 18
1
+ 20
@@ -121,7 +121,7 @@ Here are some branches that **semantic-release** supports by default:
121
121
  For more information, see the **semantic-release** docs on [triggering a release].
122
122
 
123
123
  [distribution tags]: https://docs.npmjs.com/adding-dist-tags-to-packages
124
- [oss npm package guidance]: https://github.com/SEEK-Jobs/seek-oss-ci/blob/master/NPM_PACKAGES.md#access-to-publish-to-npm
124
+ [OSS npm package guidance]: https://github.com/SEEK-Jobs/seek-oss-ci/blob/master/NPM_PACKAGES.md#access-to-publish-to-npm
125
125
  [release workflow]: .github/workflows/release.yml
126
126
  [seek-oss]: https://github.com/seek-oss
127
127
  [semantic-release]: https://github.com/semantic-release/semantic-release
@@ -1 +1 @@
1
- 18
1
+ 20
@@ -103,7 +103,7 @@ Here are some branches that **semantic-release** supports by default:
103
103
  For more information, see the **semantic-release** docs on [triggering a release].
104
104
 
105
105
  [distribution tags]: https://docs.npmjs.com/adding-dist-tags-to-packages
106
- [gutenberg]: https://github.com/SEEK-Jobs/gutenberg
107
- [seek-jobs]: https://github.com/orgs/seek-jobs/sso
106
+ [Gutenberg]: https://github.com/SEEK-Jobs/gutenberg
107
+ [SEEK-Jobs]: https://github.com/orgs/seek-jobs/sso
108
108
  [semantic-release]: https://github.com/semantic-release/semantic-release
109
109
  [triggering a release]: https://github.com/semantic-release/semantic-release/#triggering-a-release