skuba 12.4.1-add-ci-true-20250929053152 → 12.4.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.
@@ -36,7 +36,8 @@ var import_util = require("util");
36
36
  var import_fast_glob = __toESM(require("fast-glob"));
37
37
  var import_fs_extra = __toESM(require("fs-extra"));
38
38
  var import_logging = require("../../../../../../utils/logging.js");
39
- const dockerRegex = /FROM \$\{BASE_IMAGE\} AS build/;
39
+ const pnpmInstallTestRegex = /^RUN pnpm install.*--prod/m;
40
+ const pnpmInstallReplaceRegex = /^RUN pnpm install.*--prod/gm;
40
41
  const patchDockerfileCIVariable = async (mode) => {
41
42
  const dockerfilePaths = await (0, import_fast_glob.default)(["**/Dockerfile*"], {
42
43
  ignore: ["**/.git", "**/node_modules"]
@@ -57,7 +58,7 @@ const patchDockerfileCIVariable = async (mode) => {
57
58
  })
58
59
  );
59
60
  const dockerfilesToPatch = dockerfiles.filter(
60
- ({ contents }) => contents.includes("FROM ${BASE_IMAGE} AS build")
61
+ ({ contents }) => pnpmInstallTestRegex.test(contents)
61
62
  );
62
63
  if (dockerfilesToPatch.length === 0) {
63
64
  return {
@@ -73,8 +74,8 @@ const patchDockerfileCIVariable = async (mode) => {
73
74
  await Promise.all(
74
75
  dockerfilesToPatch.map(async ({ file, contents }) => {
75
76
  const updatedContents = contents.replace(
76
- dockerRegex,
77
- "FROM ${BASE_IMAGE} AS build\n\nENV CI=true\n"
77
+ pnpmInstallReplaceRegex,
78
+ (match) => match.replace("RUN pnpm", "RUN CI=true pnpm")
78
79
  );
79
80
  await import_fs_extra.default.writeFile(file, updatedContents, "utf8");
80
81
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/cli/lint/internalLints/upgrade/patches/12.4.0/patchDockerfileCIVariable.ts"],
4
- "sourcesContent": ["import { inspect } from 'util';\n\nimport fg from 'fast-glob';\nimport fs from 'fs-extra';\n\nimport { log } from '../../../../../../utils/logging.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\n\nconst dockerRegex = /FROM \\$\\{BASE_IMAGE\\} AS build/;\n\nexport const patchDockerfileCIVariable = async (\n mode: 'lint' | 'format',\n): Promise<PatchReturnType> => {\n const dockerfilePaths = await fg(['**/Dockerfile*'], {\n ignore: ['**/.git', '**/node_modules'],\n });\n\n if (dockerfilePaths.length === 0) {\n return {\n result: 'skip',\n reason: 'no dockerfiles found',\n };\n }\n\n const dockerfiles = await Promise.all(\n dockerfilePaths.map(async (file) => {\n const contents = await fs.readFile(file, 'utf8');\n\n return {\n file,\n contents,\n };\n }),\n );\n\n const dockerfilesToPatch = dockerfiles.filter(({ contents }) =>\n contents.includes('FROM ${BASE_IMAGE} AS build'),\n );\n\n if (dockerfilesToPatch.length === 0) {\n return {\n result: 'skip',\n reason: 'no dockerfiles to patch',\n };\n }\n\n if (mode === 'lint') {\n return {\n result: 'apply',\n };\n }\n\n await Promise.all(\n dockerfilesToPatch.map(async ({ file, contents }) => {\n const updatedContents = contents.replace(\n dockerRegex,\n 'FROM ${BASE_IMAGE} AS build\\n\\nENV CI=true\\n',\n );\n await fs.writeFile(file, updatedContents, 'utf8');\n }),\n );\n\n return {\n result: 'apply',\n };\n};\n\nexport const tryPatchDockerfileCIVariable: PatchFunction = async ({ mode }) => {\n try {\n return await patchDockerfileCIVariable(mode);\n } catch (err) {\n log.warn('Failed to apply Dockerfile CI variable patch.');\n log.subtle(inspect(err));\n return { result: 'skip', reason: 'due to an error' };\n }\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AAExB,uBAAe;AACf,sBAAe;AAEf,qBAAoB;AAGpB,MAAM,cAAc;AAEb,MAAM,4BAA4B,OACvC,SAC6B;AAC7B,QAAM,kBAAkB,UAAM,iBAAAA,SAAG,CAAC,gBAAgB,GAAG;AAAA,IACnD,QAAQ,CAAC,WAAW,iBAAiB;AAAA,EACvC,CAAC;AAED,MAAI,gBAAgB,WAAW,GAAG;AAChC,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,QAAQ;AAAA,IAChC,gBAAgB,IAAI,OAAO,SAAS;AAClC,YAAM,WAAW,MAAM,gBAAAC,QAAG,SAAS,MAAM,MAAM;AAE/C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,YAAY;AAAA,IAAO,CAAC,EAAE,SAAS,MACxD,SAAS,SAAS,6BAA6B;AAAA,EACjD;AAEA,MAAI,mBAAmB,WAAW,GAAG;AACnC,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,MAAI,SAAS,QAAQ;AACnB,WAAO;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,mBAAmB,IAAI,OAAO,EAAE,MAAM,SAAS,MAAM;AACnD,YAAM,kBAAkB,SAAS;AAAA,QAC/B;AAAA,QACA;AAAA,MACF;AACA,YAAM,gBAAAA,QAAG,UAAU,MAAM,iBAAiB,MAAM;AAAA,IAClD,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,QAAQ;AAAA,EACV;AACF;AAEO,MAAM,+BAA8C,OAAO,EAAE,KAAK,MAAM;AAC7E,MAAI;AACF,WAAO,MAAM,0BAA0B,IAAI;AAAA,EAC7C,SAAS,KAAK;AACZ,uBAAI,KAAK,+CAA+C;AACxD,uBAAI,WAAO,qBAAQ,GAAG,CAAC;AACvB,WAAO,EAAE,QAAQ,QAAQ,QAAQ,kBAAkB;AAAA,EACrD;AACF;",
4
+ "sourcesContent": ["import { inspect } from 'util';\n\nimport fg from 'fast-glob';\nimport fs from 'fs-extra';\n\nimport { log } from '../../../../../../utils/logging.js';\nimport type { PatchFunction, PatchReturnType } from '../../index.js';\n\nconst pnpmInstallTestRegex = /^RUN pnpm install.*--prod/m;\nconst pnpmInstallReplaceRegex = /^RUN pnpm install.*--prod/gm;\n\nexport const patchDockerfileCIVariable = async (\n mode: 'lint' | 'format',\n): Promise<PatchReturnType> => {\n const dockerfilePaths = await fg(['**/Dockerfile*'], {\n ignore: ['**/.git', '**/node_modules'],\n });\n\n if (dockerfilePaths.length === 0) {\n return {\n result: 'skip',\n reason: 'no dockerfiles found',\n };\n }\n\n const dockerfiles = await Promise.all(\n dockerfilePaths.map(async (file) => {\n const contents = await fs.readFile(file, 'utf8');\n\n return {\n file,\n contents,\n };\n }),\n );\n\n const dockerfilesToPatch = dockerfiles.filter(({ contents }) =>\n pnpmInstallTestRegex.test(contents),\n );\n\n if (dockerfilesToPatch.length === 0) {\n return {\n result: 'skip',\n reason: 'no dockerfiles to patch',\n };\n }\n\n if (mode === 'lint') {\n return {\n result: 'apply',\n };\n }\n\n await Promise.all(\n dockerfilesToPatch.map(async ({ file, contents }) => {\n const updatedContents = contents.replace(\n pnpmInstallReplaceRegex,\n (match) => match.replace('RUN pnpm', 'RUN CI=true pnpm'),\n );\n await fs.writeFile(file, updatedContents, 'utf8');\n }),\n );\n\n return {\n result: 'apply',\n };\n};\n\nexport const tryPatchDockerfileCIVariable: PatchFunction = async ({ mode }) => {\n try {\n return await patchDockerfileCIVariable(mode);\n } catch (err) {\n log.warn('Failed to apply Dockerfile CI variable patch.');\n log.subtle(inspect(err));\n return { result: 'skip', reason: 'due to an error' };\n }\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAwB;AAExB,uBAAe;AACf,sBAAe;AAEf,qBAAoB;AAGpB,MAAM,uBAAuB;AAC7B,MAAM,0BAA0B;AAEzB,MAAM,4BAA4B,OACvC,SAC6B;AAC7B,QAAM,kBAAkB,UAAM,iBAAAA,SAAG,CAAC,gBAAgB,GAAG;AAAA,IACnD,QAAQ,CAAC,WAAW,iBAAiB;AAAA,EACvC,CAAC;AAED,MAAI,gBAAgB,WAAW,GAAG;AAChC,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,QAAQ;AAAA,IAChC,gBAAgB,IAAI,OAAO,SAAS;AAClC,YAAM,WAAW,MAAM,gBAAAC,QAAG,SAAS,MAAM,MAAM;AAE/C,aAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,qBAAqB,YAAY;AAAA,IAAO,CAAC,EAAE,SAAS,MACxD,qBAAqB,KAAK,QAAQ;AAAA,EACpC;AAEA,MAAI,mBAAmB,WAAW,GAAG;AACnC,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,MAAI,SAAS,QAAQ;AACnB,WAAO;AAAA,MACL,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,QAAM,QAAQ;AAAA,IACZ,mBAAmB,IAAI,OAAO,EAAE,MAAM,SAAS,MAAM;AACnD,YAAM,kBAAkB,SAAS;AAAA,QAC/B;AAAA,QACA,CAAC,UAAU,MAAM,QAAQ,YAAY,kBAAkB;AAAA,MACzD;AACA,YAAM,gBAAAA,QAAG,UAAU,MAAM,iBAAiB,MAAM;AAAA,IAClD,CAAC;AAAA,EACH;AAEA,SAAO;AAAA,IACL,QAAQ;AAAA,EACV;AACF;AAEO,MAAM,+BAA8C,OAAO,EAAE,KAAK,MAAM;AAC7E,MAAI;AACF,WAAO,MAAM,0BAA0B,IAAI;AAAA,EAC7C,SAAS,KAAK;AACZ,uBAAI,KAAK,+CAA+C;AACxD,uBAAI,WAAO,qBAAQ,GAAG,CAAC;AACvB,WAAO,EAAE,QAAQ,QAAQ,QAAQ,kBAAkB;AAAA,EACrD;AACF;",
6
6
  "names": ["fg", "fs"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "12.4.1-add-ci-true-20250929053152",
3
+ "version": "12.4.1",
4
4
  "private": false,
5
5
  "description": "SEEK development toolkit for backend applications and packages",
6
6
  "homepage": "https://github.com/seek-oss/skuba#readme",
@@ -146,7 +146,7 @@
146
146
  "entryPoint": "src/index.ts",
147
147
  "template": null,
148
148
  "type": "package",
149
- "version": "12.4.0"
149
+ "version": "12.4.1"
150
150
  },
151
151
  "scripts": {
152
152
  "build": "scripts/build.sh",
@@ -8,7 +8,7 @@ COPY . .
8
8
 
9
9
  RUN pnpm install --offline
10
10
  RUN pnpm build
11
- RUN pnpm install --offline --prod
11
+ RUN CI=true pnpm install --offline --prod
12
12
 
13
13
  ###
14
14
 
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "^22.13.10",
20
- "skuba": "12.4.1-add-ci-true-20250929053152"
20
+ "skuba": "*"
21
21
  },
22
22
  "packageManager": "pnpm@10.17.1",
23
23
  "engines": {
@@ -4,13 +4,11 @@ ARG BASE_IMAGE
4
4
 
5
5
  FROM ${BASE_IMAGE} AS build
6
6
 
7
- ENV CI=true
8
-
9
7
  COPY . .
10
8
 
11
9
  RUN pnpm install --offline
12
10
  RUN pnpm build
13
- RUN pnpm install --offline --prod
11
+ RUN CI=true pnpm install --offline --prod
14
12
 
15
13
  ###
16
14
 
@@ -35,7 +35,7 @@
35
35
  "datadog-lambda-js": "^12.0.0",
36
36
  "dd-trace": "^5.0.0",
37
37
  "pino-pretty": "^13.0.0",
38
- "skuba": "12.4.1-add-ci-true-20250929053152"
38
+ "skuba": "*"
39
39
  },
40
40
  "packageManager": "pnpm@10.17.1",
41
41
  "engines": {
@@ -3,7 +3,7 @@ name: Release
3
3
  on:
4
4
  push:
5
5
  branches:
6
- - $default-branch
6
+ - main
7
7
  - beta
8
8
 
9
9
  permissions: {}
@@ -82,7 +82,7 @@ on:
82
82
  push:
83
83
  branches:
84
84
  # add others as necessary
85
- - $default-branch
85
+ - main
86
86
  - beta
87
87
  # - alpha
88
88
  ```