@catladder/pipeline 3.27.0 → 3.29.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 (50) hide show
  1. package/dist/build/node/yarn.d.ts +2 -1
  2. package/dist/build/node/yarn.js +6 -2
  3. package/dist/build/types.d.ts +11 -0
  4. package/dist/constants.js +1 -1
  5. package/dist/tsconfig.tsbuildinfo +1 -1
  6. package/examples/__snapshots__/automatic-releases.test.ts.snap +8 -4
  7. package/examples/__snapshots__/cloud-run-health-check-defaults.test.ts.snap +8 -4
  8. package/examples/__snapshots__/cloud-run-health-check-only-startup.test.ts.snap +8 -4
  9. package/examples/__snapshots__/cloud-run-health-check.test.ts.snap +8 -4
  10. package/examples/__snapshots__/cloud-run-http2.test.ts.snap +8 -4
  11. package/examples/__snapshots__/cloud-run-memory-limit.test.ts.snap +8 -4
  12. package/examples/__snapshots__/cloud-run-nextjs.test.ts.snap +8 -4
  13. package/examples/__snapshots__/cloud-run-no-cpu-throttling.test.ts.snap +8 -4
  14. package/examples/__snapshots__/cloud-run-no-service.test.ts.snap +8 -4
  15. package/examples/__snapshots__/cloud-run-non-public.test.ts.snap +8 -4
  16. package/examples/__snapshots__/cloud-run-post-stop-job.test.ts.snap +8 -4
  17. package/examples/__snapshots__/cloud-run-service-custom-vpc-connector.test.ts.snap +8 -4
  18. package/examples/__snapshots__/cloud-run-service-custom-vpc.test.ts.snap +8 -4
  19. package/examples/__snapshots__/cloud-run-service-gen2.test.ts.snap +8 -4
  20. package/examples/__snapshots__/cloud-run-service-increase-timout.test.ts.snap +8 -4
  21. package/examples/__snapshots__/cloud-run-service-with-volumes.test.ts.snap +8 -4
  22. package/examples/__snapshots__/cloud-run-storybook.test.ts.snap +8 -4
  23. package/examples/__snapshots__/cloud-run-with-agents.test.ts.snap +8 -4
  24. package/examples/__snapshots__/cloud-run-with-gpu.test.ts.snap +8 -4
  25. package/examples/__snapshots__/cloud-run-with-ngnix.test.ts.snap +8 -4
  26. package/examples/__snapshots__/cloud-run-with-sql-legacy-jobs.test.ts.snap +8 -4
  27. package/examples/__snapshots__/cloud-run-with-sql-multiple-dbs.test.ts.snap +24 -12
  28. package/examples/__snapshots__/cloud-run-with-sql-reuse-db.test.ts.snap +16 -8
  29. package/examples/__snapshots__/cloud-run-with-sql.test.ts.snap +8 -4
  30. package/examples/__snapshots__/cloud-run-with-worker.test.ts.snap +8 -4
  31. package/examples/__snapshots__/custom-deploy.test.ts.snap +8 -4
  32. package/examples/__snapshots__/custom-verify-job.test.ts.snap +8 -4
  33. package/examples/__snapshots__/git-submodule.test.ts.snap +8 -4
  34. package/examples/__snapshots__/kubernetes-application-customization.test.ts.snap +8 -4
  35. package/examples/__snapshots__/kubernetes-with-cloud-sql.test.ts.snap +8 -4
  36. package/examples/__snapshots__/kubernetes-with-jobs.test.ts.snap +16 -8
  37. package/examples/__snapshots__/kubernetes-with-mongodb.test.ts.snap +8 -4
  38. package/examples/__snapshots__/local-dot-env.test.ts.snap +8 -4
  39. package/examples/__snapshots__/multiline-var.test.ts.snap +24 -12
  40. package/examples/__snapshots__/native-app.test.ts.snap +8 -4
  41. package/examples/__snapshots__/node-build-with-custom-image.test.ts.snap +8 -4
  42. package/examples/__snapshots__/node-build-with-docker-additions.test.ts.snap +8 -4
  43. package/examples/__snapshots__/override-secrets.test.ts.snap +8 -4
  44. package/examples/__snapshots__/referencing-other-vars.test.ts.snap +24 -12
  45. package/examples/__snapshots__/workspace-api-www-turbo-cache.test.ts.snap +16 -8
  46. package/examples/__snapshots__/workspace-api-www.test.ts.snap +8 -8
  47. package/examples/workspace-api-www.ts +3 -0
  48. package/package.json +1 -1
  49. package/src/build/node/yarn.ts +22 -3
  50. package/src/build/types.ts +11 -0
@@ -727,7 +727,8 @@ before_script:
727
727
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
728
728
  COPY --chown=node:node $APP_DIR .
729
729
  RUN yarn plugin import workspace-tools
730
- RUN yarn workspaces focus --production && yarn rebuild"
730
+ RUN yarn workspaces focus --production
731
+ RUN yarn rebuild"
731
732
  - |-
732
733
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
733
734
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -954,7 +955,8 @@ before_script:
954
955
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
955
956
  COPY --chown=node:node $APP_DIR .
956
957
  RUN yarn plugin import workspace-tools
957
- RUN yarn workspaces focus --production && yarn rebuild"
958
+ RUN yarn workspaces focus --production
959
+ RUN yarn rebuild"
958
960
  - |-
959
961
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
960
962
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -1189,7 +1191,8 @@ before_script:
1189
1191
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1190
1192
  COPY --chown=node:node $APP_DIR .
1191
1193
  RUN yarn plugin import workspace-tools
1192
- RUN yarn workspaces focus --production && yarn rebuild"
1194
+ RUN yarn workspaces focus --production
1195
+ RUN yarn rebuild"
1193
1196
  - |-
1194
1197
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
1195
1198
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -1409,7 +1412,8 @@ before_script:
1409
1412
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1410
1413
  COPY --chown=node:node $APP_DIR .
1411
1414
  RUN yarn plugin import workspace-tools
1412
- RUN yarn workspaces focus --production && yarn rebuild"
1415
+ RUN yarn workspaces focus --production
1416
+ RUN yarn rebuild"
1413
1417
  - |-
1414
1418
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
1415
1419
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -1629,7 +1633,8 @@ before_script:
1629
1633
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1630
1634
  COPY --chown=node:node $APP_DIR .
1631
1635
  RUN yarn plugin import workspace-tools
1632
- RUN yarn workspaces focus --production && yarn rebuild"
1636
+ RUN yarn workspaces focus --production
1637
+ RUN yarn rebuild"
1633
1638
  - |-
1634
1639
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
1635
1640
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -1859,7 +1864,8 @@ before_script:
1859
1864
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1860
1865
  COPY --chown=node:node $APP_DIR .
1861
1866
  RUN yarn plugin import workspace-tools
1862
- RUN yarn workspaces focus --production && yarn rebuild"
1867
+ RUN yarn workspaces focus --production
1868
+ RUN yarn rebuild"
1863
1869
  - |-
1864
1870
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
1865
1871
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -2097,7 +2103,8 @@ before_script:
2097
2103
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
2098
2104
  COPY --chown=node:node $APP_DIR .
2099
2105
  RUN yarn plugin import workspace-tools
2100
- RUN yarn workspaces focus --production && yarn rebuild"
2106
+ RUN yarn workspaces focus --production
2107
+ RUN yarn rebuild"
2101
2108
  - |-
2102
2109
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
2103
2110
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -2320,7 +2327,8 @@ before_script:
2320
2327
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
2321
2328
  COPY --chown=node:node $APP_DIR .
2322
2329
  RUN yarn plugin import workspace-tools
2323
- RUN yarn workspaces focus --production && yarn rebuild"
2330
+ RUN yarn workspaces focus --production
2331
+ RUN yarn rebuild"
2324
2332
  - |-
2325
2333
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
2326
2334
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -719,7 +719,7 @@ before_script:
719
719
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
720
720
  COPY --chown=node:node $APP_DIR .
721
721
  RUN yarn plugin import workspace-tools
722
- RUN yarn workspaces focus --production && yarn rebuild"
722
+ RUN yarn workspaces focus --production"
723
723
  - |-
724
724
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
725
725
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -946,7 +946,7 @@ before_script:
946
946
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
947
947
  COPY --chown=node:node $APP_DIR .
948
948
  RUN yarn plugin import workspace-tools
949
- RUN yarn workspaces focus --production && yarn rebuild"
949
+ RUN yarn workspaces focus --production"
950
950
  - |-
951
951
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
952
952
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -1181,7 +1181,7 @@ before_script:
1181
1181
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1182
1182
  COPY --chown=node:node $APP_DIR .
1183
1183
  RUN yarn plugin import workspace-tools
1184
- RUN yarn workspaces focus --production && yarn rebuild"
1184
+ RUN yarn workspaces focus --production"
1185
1185
  - |-
1186
1186
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
1187
1187
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -1401,7 +1401,7 @@ before_script:
1401
1401
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1402
1402
  COPY --chown=node:node $APP_DIR .
1403
1403
  RUN yarn plugin import workspace-tools
1404
- RUN yarn workspaces focus --production && yarn rebuild"
1404
+ RUN yarn workspaces focus --production"
1405
1405
  - |-
1406
1406
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node api/package.json /app/api/package.json
1407
1407
  COPY --chown=node:node api/yarn.lock /app/api/yarn.lock
@@ -1621,7 +1621,7 @@ before_script:
1621
1621
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1622
1622
  COPY --chown=node:node $APP_DIR .
1623
1623
  RUN yarn plugin import workspace-tools
1624
- RUN yarn workspaces focus --production && yarn rebuild"
1624
+ RUN yarn workspaces focus --production"
1625
1625
  - |-
1626
1626
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
1627
1627
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -1851,7 +1851,7 @@ before_script:
1851
1851
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
1852
1852
  COPY --chown=node:node $APP_DIR .
1853
1853
  RUN yarn plugin import workspace-tools
1854
- RUN yarn workspaces focus --production && yarn rebuild"
1854
+ RUN yarn workspaces focus --production"
1855
1855
  - |-
1856
1856
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
1857
1857
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -2089,7 +2089,7 @@ before_script:
2089
2089
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
2090
2090
  COPY --chown=node:node $APP_DIR .
2091
2091
  RUN yarn plugin import workspace-tools
2092
- RUN yarn workspaces focus --production && yarn rebuild"
2092
+ RUN yarn workspaces focus --production"
2093
2093
  - |-
2094
2094
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
2095
2095
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -2312,7 +2312,7 @@ before_script:
2312
2312
  export DOCKER_COPY_AND_INSTALL_APP="ENV YARN_ENABLE_INLINE_BUILDS=1
2313
2313
  COPY --chown=node:node $APP_DIR .
2314
2314
  RUN yarn plugin import workspace-tools
2315
- RUN yarn workspaces focus --production && yarn rebuild"
2315
+ RUN yarn workspaces focus --production"
2316
2316
  - |-
2317
2317
  export DOCKER_COPY_WORKSPACE_FILES="COPY --chown=node:node www/package.json /app/www/package.json
2318
2318
  COPY --chown=node:node www/yarn.lock /app/www/yarn.lock
@@ -11,6 +11,9 @@ const config = {
11
11
  builds: {
12
12
  myWorkspace: {
13
13
  type: "node",
14
+ dockerDefaults: {
15
+ yarnRebuildEnabled: false,
16
+ },
14
17
  },
15
18
  },
16
19
  components: {
package/package.json CHANGED
@@ -53,7 +53,7 @@
53
53
  }
54
54
  ],
55
55
  "license": "MIT",
56
- "version": "3.27.0",
56
+ "version": "3.29.1",
57
57
  "scripts": {
58
58
  "build:tsc": "yarn tsc",
59
59
  "build": "yarn build:compile && yarn build:inline-variables",
@@ -1,12 +1,14 @@
1
1
  import { BashExpression } from "../../bash/BashExpression";
2
+ import type { ComponentContextWithBuild } from "../../types";
2
3
  import { type Context } from "../../types";
3
4
  import { ensureArray } from "../../utils";
4
5
  import { collapseableSection } from "../../utils/gitlab";
5
6
 
6
7
  const YARN_INSTALL_CLASSIC = `yarn install --frozen-lockfile`;
7
8
 
9
+ const YARN_BERRY_PROD_INSTALL = `yarn workspaces focus --production`;
8
10
  // FIXME: check why and when rebuild is needed
9
- const YARN_BERRY_PROD_REBUILD = `yarn workspaces focus --production && yarn rebuild`;
11
+ const YARN_BERRY_PROD_REBUILD = `yarn rebuild`;
10
12
 
11
13
  const getYarnInstallCommand = (context: Context) => {
12
14
  if (context.packageManagerInfo.isClassic) {
@@ -54,7 +56,9 @@ export const getYarnInstall = (
54
56
 
55
57
  const DOCKER_COPY_FILES = `COPY --chown=node:node $APP_DIR .`;
56
58
 
57
- export const getDockerAppCopyAndBuildScript = (context: Context) => {
59
+ export const getDockerAppCopyAndBuildScript = (
60
+ context: ComponentContextWithBuild,
61
+ ) => {
58
62
  if (context.packageManagerInfo.isClassic) {
59
63
  return new BashExpression(
60
64
  `
@@ -65,6 +69,20 @@ RUN ${YARN_INSTALL_CLASSIC} --production
65
69
  );
66
70
  }
67
71
 
72
+ const yarnRebuildEnabledDefault =
73
+ context.build.type === "fromWorkspace"
74
+ ? (context.build.workspaceBuildConfig.dockerDefaults
75
+ ?.yarnRebuildEnabled ?? true)
76
+ : true;
77
+
78
+ const yarnRebuildEnabled =
79
+ "docker" in context.build.config &&
80
+ context.build.config.docker &&
81
+ "yarnRebuildEnabled" in context.build.config.docker
82
+ ? (context.build.config.docker.yarnRebuildEnabled ??
83
+ yarnRebuildEnabledDefault)
84
+ : yarnRebuildEnabledDefault;
85
+
68
86
  // yarn >= 4 ships with build in plugins, see https://github.com/yarnpkg/berry/pull/4253
69
87
  // trying to import those fail on this version
70
88
  const doesNotShipWithBuiltInPlugins = ["2", "3"].some((v) =>
@@ -81,7 +99,8 @@ RUN ${YARN_INSTALL_CLASSIC} --production
81
99
  ENV YARN_ENABLE_INLINE_BUILDS=1
82
100
  ${DOCKER_COPY_FILES}
83
101
  ${maybeAddWorkspaceToolsCommand}
84
- RUN ${YARN_BERRY_PROD_REBUILD}
102
+ RUN ${YARN_BERRY_PROD_INSTALL}
103
+ ${yarnRebuildEnabled ? `RUN ${YARN_BERRY_PROD_REBUILD}` : ""}
85
104
 
86
105
  `.trim(),
87
106
  );
@@ -204,6 +204,12 @@ type BuildConfigDockerWithAdditions = {
204
204
 
205
205
  type BuildConfigDockerBuiltInNode = {
206
206
  type: "node";
207
+ /**
208
+ * whether to run yarn rebuild after yarn install. Defaults to true.
209
+ *
210
+ * Future versions of catladder will default to false.
211
+ */
212
+ yarnRebuildEnabled?: boolean;
207
213
  } & BuildConfigDockerWithAdditions;
208
214
 
209
215
  type BuildConfigDockerBuiltInMeteor = {
@@ -419,6 +425,11 @@ export type WorkspaceBuildConfigBase = {
419
425
  export type WorkspaceBuildConfigNode = {
420
426
  type: "node";
421
427
  buildCommand?: string | string[];
428
+ /**
429
+ * set docker config defaults for the node build type.
430
+ * Currently not all options are supported.
431
+ */
432
+ dockerDefaults?: Pick<BuildConfigDockerBuiltInNode, "yarnRebuildEnabled">;
422
433
  } & WorkspaceBuildConfigBase;
423
434
 
424
435
  export type WorkspaceBuildConfig = WorkspaceBuildConfigNode;