@code-pushup/ci 0.71.0 → 0.72.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.
package/README.md CHANGED
@@ -103,11 +103,12 @@ Optionally, you can override default options for further customization:
103
103
  | `nxProjectsFilter` | `string \| string[]` | `'--with-target={task}'` | Arguments passed to [`nx show projects`](https://nx.dev/nx-api/nx/documents/show#projects), only relevant for Nx in [monorepo mode](#monorepo-mode) [^2] |
104
104
  | `directory` | `string` | `process.cwd()` | Directory in which Code PushUp CLI should run |
105
105
  | `config` | `string \| null` | `null` [^1] | Path to config file (`--config` option) |
106
- | `silent` | `boolean` | `false` | Hides logs from CLI commands (erros will be printed) |
106
+ | `silent` | `boolean` | `false` | Hides logs from CLI commands (errors will be printed) |
107
107
  | `bin` | `string` | `'npx --no-install code-pushup'` | Command for executing Code PushUp CLI |
108
108
  | `detectNewIssues` | `boolean` | `true` | Toggles if new issues should be detected and returned in `newIssues` property |
109
109
  | `logger` | `Logger` | `console` | Logger for reporting progress and encountered problems |
110
110
  | `skipComment` | `boolean` | `false` | Toggles if comparison comment is posted to PR |
111
+ | `configPatterns` | `ConfigPatterns \| null` | `null` | Additional configuration which enables [faster CI runs](#faster-ci-runs-with-configpatterns) |
111
112
 
112
113
  [^1]: By default, the `code-pushup.config` file is autodetected as described in [`@code-pushup/cli` docs](../cli/README.md#configuration).
113
114
 
@@ -216,6 +217,32 @@ await runInCI(refs, api, {
216
217
  });
217
218
  ```
218
219
 
220
+ ### Faster CI runs with `configPatterns`
221
+
222
+ By default, the `print-config` command is run sequentially for each project in order to reliably detect how `code-pushup` is configured - specifically, where to read output files from (`persist` config) and whether portal may be used as a cache (`upload` config). This allows for each project to be configured in its own way without breaking anything, but for large monorepos these extra `code-pushup print-config` executions can accumulate and significantly slow down CI pipelines.
223
+
224
+ As a more scalable alternative, `configPatterns` may be provided. A user declares upfront how every project is configured, which allows `print-config` to be skipped. It's the user's responsibility to ensure this configuration holds for every project (it won't be checked). The `configPatterns` support string interpolation, substituting `{projectName}` with each project's name. Other than that, each project's `code-pushup.config` must have exactly the same `persist` and `upload` configurations.
225
+
226
+ ```ts
227
+ await runInCI(refs, api, {
228
+ monorepo: true,
229
+ configPatterns: {
230
+ persist: {
231
+ outputDir: '.code-pushup/{projectName}',
232
+ filename: 'report',
233
+ format: ['json', 'md'],
234
+ },
235
+ // optional: will use portal as cache when comparing reports in PRs
236
+ upload: {
237
+ server: 'https://api.code-pushup.example.com/graphql',
238
+ apiKey: 'cp_...',
239
+ organization: 'example',
240
+ project: '{projectName}',
241
+ },
242
+ },
243
+ });
244
+ ```
245
+
219
246
  ### Monorepo result
220
247
 
221
248
  In monorepo mode, the resolved object includes the merged diff at the top-level, as well as a list of projects.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-pushup/ci",
3
- "version": "0.71.0",
3
+ "version": "0.72.1",
4
4
  "description": "CI automation logic for Code PushUp (provider-agnostic)",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/code-pushup/cli/tree/main/packages/ci#readme",
@@ -26,9 +26,9 @@
26
26
  },
27
27
  "type": "module",
28
28
  "dependencies": {
29
- "@code-pushup/models": "0.71.0",
29
+ "@code-pushup/models": "0.72.1",
30
30
  "@code-pushup/portal-client": "^0.14.3",
31
- "@code-pushup/utils": "0.71.0",
31
+ "@code-pushup/utils": "0.72.1",
32
32
  "glob": "^11.0.1",
33
33
  "simple-git": "^3.20.0",
34
34
  "yaml": "^2.5.1",
@@ -1,8 +1,4 @@
1
1
  import type { CommandContext } from '../context.js';
2
- type CompareOptions = {
3
- before: string;
4
- after: string;
5
- label?: string;
6
- };
7
- export declare function runCompare({ before, after, label }: CompareOptions, { bin, config, directory, observer }: CommandContext): Promise<void>;
8
- export {};
2
+ export declare function runCompare({ bin, config, directory, observer }: CommandContext, { hasFormats }: {
3
+ hasFormats: boolean;
4
+ }): Promise<void>;
@@ -1,16 +1,15 @@
1
1
  import { DEFAULT_PERSIST_FORMAT } from '@code-pushup/models';
2
2
  import { executeProcess, isVerbose } from '@code-pushup/utils';
3
- export async function runCompare({ before, after, label }, { bin, config, directory, observer }) {
3
+ export async function runCompare({ bin, config, directory, observer }, { hasFormats }) {
4
4
  await executeProcess({
5
5
  command: bin,
6
6
  args: [
7
7
  'compare',
8
8
  ...(isVerbose() ? ['--verbose'] : []),
9
- `--before=${before}`,
10
- `--after=${after}`,
11
- ...(label ? [`--label=${label}`] : []),
12
9
  ...(config ? [`--config=${config}`] : []),
13
- ...DEFAULT_PERSIST_FORMAT.map(format => `--persist.format=${format}`),
10
+ ...(hasFormats
11
+ ? []
12
+ : DEFAULT_PERSIST_FORMAT.map(format => `--persist.format=${format}`)),
14
13
  ],
15
14
  cwd: directory,
16
15
  observer,
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/cli/commands/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAS/D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAkB,EACxC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAkB;IAEpD,MAAM,cAAc,CAAC;QACnB,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE;YACJ,SAAS;YACT,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,YAAY,MAAM,EAAE;YACpB,WAAW,KAAK,EAAE;YAClB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC;SACtE;QACD,GAAG,EAAE,SAAS;QACd,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/cli/commands/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAkB,EACpD,EAAE,UAAU,EAA2B;IAEvC,MAAM,cAAc,CAAC;QACnB,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE;YACJ,SAAS;YACT,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,UAAU;gBACZ,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;SACxE;QACD,GAAG,EAAE,SAAS;QACd,QAAQ;KACT,CAAC,CAAC;AACL,CAAC"}
@@ -1,16 +1,16 @@
1
1
  import path from 'node:path';
2
2
  import { z } from 'zod';
3
3
  import { DEFAULT_PERSIST_FILENAME, DEFAULT_PERSIST_FORMAT, DEFAULT_PERSIST_OUTPUT_DIR, persistConfigSchema, uploadConfigSchema, } from '@code-pushup/models';
4
- import { objectFromEntries } from '@code-pushup/utils';
4
+ import { createReportPath, objectFromEntries } from '@code-pushup/utils';
5
5
  export function persistedFilesFromConfig(config, { isDiff, directory }) {
6
6
  const { persist: { outputDir = DEFAULT_PERSIST_OUTPUT_DIR, filename = DEFAULT_PERSIST_FILENAME, } = {}, } = config;
7
7
  const dir = path.isAbsolute(outputDir)
8
8
  ? outputDir
9
9
  : path.join(directory, outputDir);
10
- const name = isDiff ? `${filename}-diff` : filename;
10
+ const suffix = isDiff ? 'diff' : undefined;
11
11
  return objectFromEntries(DEFAULT_PERSIST_FORMAT.map(format => [
12
12
  format,
13
- path.join(dir, `${name}.${format}`),
13
+ createReportPath({ outputDir: dir, filename, format, suffix }),
14
14
  ]));
15
15
  }
16
16
  export async function parsePersistConfig(json) {
@@ -1 +1 @@
1
- {"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../../../packages/ci/src/lib/cli/persist.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAE1B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD,MAAM,UAAU,wBAAwB,CACtC,MAA6B,EAC7B,EAAE,MAAM,EAAE,SAAS,EAA2C;IAE9D,MAAM,EACJ,OAAO,EAAE,EACP,SAAS,GAAG,0BAA0B,EACtC,QAAQ,GAAG,wBAAwB,GACpC,GAAG,EAAE,GACP,GAAG,MAAM,CAAC;IAEX,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACpC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEpD,OAAO,iBAAiB,CACtB,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM;QACN,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;KACpC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa;IAEb,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;KACtC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mCAAmC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"persist.js","sourceRoot":"","sources":["../../../../../../packages/ci/src/lib/cli/persist.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAEL,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAE1B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIzE,MAAM,UAAU,wBAAwB,CACtC,MAA6B,EAC7B,EAAE,MAAM,EAAE,SAAS,EAA2C;IAE9D,MAAM,EACJ,OAAO,EAAE,EACP,SAAS,GAAG,0BAA0B,EACtC,QAAQ,GAAG,wBAAwB,GACpC,GAAG,EAAE,GACP,GAAG,MAAM,CAAC;IAEX,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACpC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3C,OAAO,iBAAiB,CACtB,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,MAAM;QACN,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC/D,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa;IAEb,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,mBAAmB,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;KACtC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,mCAAmC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -12,5 +12,6 @@ export const DEFAULT_SETTINGS = {
12
12
  logger: console,
13
13
  nxProjectsFilter: '--with-target={task}',
14
14
  skipComment: false,
15
+ configPatterns: null,
15
16
  };
16
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,8BAA8B;IACnC,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;IACxB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,KAAK;CACnB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,8BAA8B;IACnC,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;IACxB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,OAAO;IACf,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,IAAI;CACrB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Format } from '@code-pushup/models';
1
+ import type { Format, PersistConfig, UploadConfig } from '@code-pushup/models';
2
2
  import type { SourceFileIssue } from './issues.js';
3
3
  import type { MonorepoTool } from './monorepo/index.js';
4
4
  /**
@@ -19,6 +19,7 @@ export type Options = {
19
19
  detectNewIssues?: boolean;
20
20
  logger?: Logger;
21
21
  skipComment?: boolean;
22
+ configPatterns?: ConfigPatterns | null;
22
23
  };
23
24
  /**
24
25
  * {@link Options} with filled-in defaults.
@@ -66,6 +67,14 @@ export type Logger = {
66
67
  info: (message: string) => void;
67
68
  debug: (message: string) => void;
68
69
  };
70
+ /**
71
+ * Code PushUp config patterns which hold for every project in monorepo.
72
+ * Providing this information upfront makes CI runs faster (skips print-config).
73
+ */
74
+ export type ConfigPatterns = {
75
+ persist: Required<PersistConfig>;
76
+ upload?: UploadConfig;
77
+ };
69
78
  /**
70
79
  * Resolved return value of {@link runInCI}
71
80
  */
@@ -1,5 +1,5 @@
1
1
  import path from 'node:path';
2
- import { executeProcess, fileExists, stringifyError, toArray, } from '@code-pushup/utils';
2
+ import { executeProcess, fileExists, interpolate, stringifyError, toArray, } from '@code-pushup/utils';
3
3
  export const nxHandler = {
4
4
  tool: 'nx',
5
5
  async isConfigured(options) {
@@ -19,7 +19,7 @@ export const nxHandler = {
19
19
  'nx',
20
20
  'show',
21
21
  'projects',
22
- ...toArray(nxProjectsFilter).map(arg => arg.replaceAll('{task}', task)),
22
+ ...toArray(nxProjectsFilter).map(arg => interpolate(arg, { task })),
23
23
  '--json',
24
24
  ],
25
25
  cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/monorepo/handlers/nx.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,GACR,MAAM,oBAAoB,CAAC;AAG5B,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,IAAI,EAAE,IAAI;IAEV,KAAK,CAAC,YAAY,CAAC,OAAO;QACxB,OAAO,CACL,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,CACE,MAAM,cAAc,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,cAAc,EAAE,IAAI;aACrB,CAAC,CACH,CAAC,IAAI,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;YACtC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,IAAI;gBACJ,MAAM;gBACN,UAAU;gBACV,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvE,QAAQ;aACT;YACD,GAAG;YACH,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,cAAc,OAAO,IAAI,IAAI,KAAK;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oBAAoB,CAAC,OAAO,EAAE,QAAQ;QACpC,MAAM,YAAY,GAChB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO;YACL,KAAK;YACL,IAAI;YACJ,UAAU;YACV,aAAa,OAAO,CAAC,IAAI,EAAE;YAC3B,cAAc,OAAO,CAAC,QAAQ,EAAE;YAChC,cAAc,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI;SACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,MAAc;IACnC,6CAA6C;IAC7C,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,qDAAqD,cAAc,CACjE,KAAK,CACN,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,KAAK,CACb,oFAAoF,IAAI,CAAC,SAAS,CAChG,IAAI,CACL,EAAE,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../../../packages/ci/src/lib/monorepo/handlers/nx.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,oBAAoB,CAAC;AAG5B,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,IAAI,EAAE,IAAI;IAEV,KAAK,CAAC,YAAY,CAAC,OAAO;QACxB,OAAO,CACL,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YACrD,CACE,MAAM,cAAc,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,cAAc,EAAE,IAAI;aACrB,CAAC,CACH,CAAC,IAAI,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE;QAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC;YACtC,OAAO,EAAE,KAAK;YACd,IAAI,EAAE;gBACJ,IAAI;gBACJ,MAAM;gBACN,UAAU;gBACV,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,QAAQ;aACT;YACD,GAAG;YACH,QAAQ;SACT,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,cAAc,OAAO,IAAI,IAAI,KAAK;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oBAAoB,CAAC,OAAO,EAAE,QAAQ;QACpC,MAAM,YAAY,GAChB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO;YACL,KAAK;YACL,IAAI;YACJ,UAAU;YACV,aAAa,OAAO,CAAC,IAAI,EAAE;YAC3B,cAAc,OAAO,CAAC,QAAQ,EAAE;YAChC,cAAc,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI;SACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;CACF,CAAC;AAEF,SAAS,aAAa,CAAC,MAAc;IACnC,6CAA6C;IAC7C,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,qDAAqD,cAAc,CACjE,KAAK,CACN,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,IACE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAC9D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,KAAK,CACb,oFAAoF,IAAI,CAAC,SAAS,CAChG,IAAI,CACL,EAAE,CACJ,CAAC;AACJ,CAAC"}
@@ -1,10 +1,11 @@
1
+ /* eslint-disable max-lines */
1
2
  import { readFile } from 'node:fs/promises';
2
3
  import { asyncSequential, hasNoNullableProps, } from '@code-pushup/utils';
3
- import { createCommandContext, persistedFilesFromConfig, runCollect, runMergeDiffs, } from './cli/index.js';
4
+ import { createCommandContext, persistedFilesFromConfig, runCollect, runCompare, runMergeDiffs, } from './cli/index.js';
4
5
  import { commentOnPR } from './comment.js';
5
6
  import { listMonorepoProjects, } from './monorepo/index.js';
6
7
  import { saveOutputFiles } from './output-files.js';
7
- import { checkPrintConfig, compareReports, hasDefaultPersistFormats, loadCachedBaseReport, printPersistConfig, runInBaseBranch, runOnProject, saveReportFiles, } from './run-utils.js';
8
+ import { checkPrintConfig, configFromPatterns, hasDefaultPersistFormats, loadCachedBaseReport, prepareReportFilesToCompare, printPersistConfig, runInBaseBranch, runOnProject, saveDiffFiles, saveReportFiles, } from './run-utils.js';
8
9
  export async function runInMonorepoMode(env) {
9
10
  const { api, settings } = env;
10
11
  const { logger } = settings;
@@ -45,20 +46,9 @@ async function runProjectsInBulk(projects, runManyCommand, env) {
45
46
  const { refs: { base }, settings, } = env;
46
47
  const { logger } = settings;
47
48
  logger.info(`Running on ${projects.length} projects in bulk (parallel: ${settings.parallel})`);
48
- const currProjectConfigs = await asyncSequential(projects, async (project) => {
49
- const ctx = createCommandContext(settings, project);
50
- const config = await printPersistConfig(ctx);
51
- return { project, config, ctx };
52
- });
53
- const hasFormats = allProjectsHaveDefaultPersistFormats(currProjectConfigs);
54
- logger.debug([
55
- `Loaded ${currProjectConfigs.length} persist and upload configs by running print-config command for each project.`,
56
- hasFormats
57
- ? 'Every project has default persist formats.'
58
- : 'Not all projects have default persist formats.',
59
- ].join(' '));
49
+ const { projectEnvs, hasFormats } = await loadProjectEnvs(projects, settings);
60
50
  await collectMany(runManyCommand, env, { hasFormats });
61
- const currProjectReports = await Promise.all(currProjectConfigs.map(async ({ project, config, ctx }) => {
51
+ const currProjectReports = await Promise.all(projectEnvs.map(async ({ project, config, ctx }) => {
62
52
  const reports = await saveOutputFiles({
63
53
  project,
64
54
  type: 'current',
@@ -72,6 +62,30 @@ async function runProjectsInBulk(projects, runManyCommand, env) {
72
62
  }
73
63
  return compareProjectsInBulk(currProjectReports, base, runManyCommand, env);
74
64
  }
65
+ async function loadProjectEnvs(projects, settings) {
66
+ const { logger, configPatterns } = settings;
67
+ const projectEnvs = configPatterns
68
+ ? projects.map((project) => ({
69
+ project,
70
+ config: configFromPatterns(configPatterns, project),
71
+ ctx: createCommandContext(settings, project),
72
+ }))
73
+ : await asyncSequential(projects, async (project) => {
74
+ const ctx = createCommandContext(settings, project);
75
+ const config = await printPersistConfig(ctx);
76
+ return { project, config, ctx };
77
+ });
78
+ const hasFormats = allProjectsHaveDefaultPersistFormats(projectEnvs);
79
+ logger.debug([
80
+ configPatterns
81
+ ? `Parsed ${projectEnvs.length} persist and upload configs by interpolating configPatterns option for each project.`
82
+ : `Loaded ${projectEnvs.length} persist and upload configs by running print-config command for each project.`,
83
+ hasFormats
84
+ ? 'Every project has default persist formats.'
85
+ : 'Not all projects have default persist formats.',
86
+ ].join(' '));
87
+ return { projectEnvs, hasFormats };
88
+ }
75
89
  async function compareProjectsInBulk(currProjectReports, base, runManyCommand, env) {
76
90
  const projectReportsWithCache = await Promise.all(currProjectReports.map(async ({ project, ctx, reports, config }) => {
77
91
  const args = { project, config, base, ctx, env };
@@ -93,12 +107,19 @@ async function compareProjectsInBulk(currProjectReports, base, runManyCommand, e
93
107
  prevReport: args.prevReport || collectedPrevReports[args.project.name],
94
108
  }))
95
109
  .filter(hasNoNullableProps);
96
- const projectComparisons = Object.fromEntries(await asyncSequential(projectsToCompare, async (args) => [
97
- args.project.name,
98
- await compareReports(args),
99
- ]));
110
+ const projectComparisons = await compareManyProjects(projectsToCompare, runManyCommand, env);
100
111
  return finalizeProjectReports(currProjectReports, projectComparisons);
101
112
  }
113
+ async function compareManyProjects(projectsToCompare, runManyCommand, env) {
114
+ await Promise.all(projectsToCompare.map(prepareReportFilesToCompare));
115
+ await compareMany(runManyCommand, env, {
116
+ hasFormats: allProjectsHaveDefaultPersistFormats(projectsToCompare),
117
+ });
118
+ return Object.fromEntries(await Promise.all(projectsToCompare.map(async (args) => [
119
+ args.project.name,
120
+ await saveDiffFiles(args),
121
+ ])));
122
+ }
102
123
  function finalizeProjectReports(projectReports, projectComparisons) {
103
124
  return projectReports.map(({ project, reports }) => {
104
125
  const comparison = projectComparisons?.[project.name];
@@ -111,20 +132,25 @@ function finalizeProjectReports(projectReports, projectComparisons) {
111
132
  }
112
133
  async function collectPreviousReports(base, uncachedProjectReports, runManyCommand, env) {
113
134
  const { settings } = env;
114
- const { logger } = settings;
135
+ const { logger, configPatterns } = settings;
115
136
  if (uncachedProjectReports.length === 0) {
116
137
  return {};
117
138
  }
118
139
  return runInBaseBranch(base, env, async () => {
119
- const uncachedProjectConfigs = await asyncSequential(uncachedProjectReports, async (args) => ({
120
- name: args.project.name,
121
- ctx: args.ctx,
122
- config: await checkPrintConfig(args),
123
- }));
140
+ const uncachedProjectConfigs = configPatterns
141
+ ? uncachedProjectReports.map(({ project, ctx }) => {
142
+ const config = configFromPatterns(configPatterns, project);
143
+ return { project, ctx, config };
144
+ })
145
+ : await asyncSequential(uncachedProjectReports, async (args) => ({
146
+ project: args.project,
147
+ ctx: args.ctx,
148
+ config: await checkPrintConfig(args),
149
+ }));
124
150
  const validProjectConfigs = uncachedProjectConfigs.filter(hasNoNullableProps);
125
- const onlyProjects = validProjectConfigs.map(({ name }) => name);
151
+ const onlyProjects = validProjectConfigs.map(({ project }) => project.name);
126
152
  const invalidProjects = uncachedProjectConfigs
127
- .map(({ name }) => name)
153
+ .map(({ project }) => project.name)
128
154
  .filter(name => !onlyProjects.includes(name));
129
155
  if (invalidProjects.length > 0) {
130
156
  logger.debug(`Printing config failed for ${invalidProjects.length} projects - ${invalidProjects.join(', ')}`);
@@ -140,14 +166,14 @@ async function collectPreviousReports(base, uncachedProjectReports, runManyComma
140
166
  });
141
167
  }
142
168
  async function savePreviousProjectReport(args) {
143
- const { name, ctx, config, settings } = args;
169
+ const { project, ctx, config, settings } = args;
144
170
  const files = await saveReportFiles({
145
- project: { name },
171
+ project,
146
172
  type: 'previous',
147
173
  files: persistedFilesFromConfig(config, ctx),
148
174
  settings,
149
175
  });
150
- return [name, files];
176
+ return [project.name, files];
151
177
  }
152
178
  async function collectMany(runManyCommand, env, options) {
153
179
  const { settings } = env;
@@ -163,6 +189,16 @@ async function collectMany(runManyCommand, env, options) {
163
189
  : 'all current';
164
190
  settings.logger.debug(`Collected ${countText} reports using command \`${command}\``);
165
191
  }
192
+ async function compareMany(runManyCommand, env, options) {
193
+ const { settings } = env;
194
+ const { hasFormats } = options;
195
+ const ctx = {
196
+ ...createCommandContext(settings, null),
197
+ bin: await runManyCommand(),
198
+ };
199
+ await runCompare(ctx, { hasFormats });
200
+ settings.logger.debug('Compared all project reports');
201
+ }
166
202
  export function allProjectsHaveDefaultPersistFormats(projects) {
167
203
  return projects.every(({ config }) => hasDefaultPersistFormats(config));
168
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-monorepo.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-monorepo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-monorepo.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-monorepo.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import type { SimpleGit } from 'simple-git';
2
+ import { type Diff } from '@code-pushup/utils';
2
3
  import { type CommandContext, type EnhancedPersistConfig } from './cli/index.js';
3
4
  import { type SourceFileIssue } from './issues.js';
4
- import type { GitBranch, GitRefs, Options, OutputFiles, ProjectRunResult, ProviderAPIClient, Settings } from './models.js';
5
+ import type { ConfigPatterns, GitBranch, GitRefs, Options, OutputFiles, ProjectRunResult, ProviderAPIClient, Settings } from './models.js';
5
6
  import type { ProjectConfig } from './monorepo/index.js';
6
7
  export type RunEnv = {
7
8
  refs: NormalizedGitRefs;
@@ -16,6 +17,7 @@ type NormalizedGitRefs = {
16
17
  export type CompareReportsArgs = {
17
18
  project: ProjectConfig | null;
18
19
  env: RunEnv;
20
+ ctx: CommandContext;
19
21
  base: GitBranch;
20
22
  currReport: ReportData<'current'>;
21
23
  prevReport: ReportData<'previous'>;
@@ -35,6 +37,16 @@ export type ReportData<T extends 'current' | 'previous'> = {
35
37
  export declare function createRunEnv(refs: GitRefs, api: ProviderAPIClient, options: Options | undefined, git: SimpleGit): Promise<RunEnv>;
36
38
  export declare function runOnProject(project: ProjectConfig | null, env: RunEnv): Promise<ProjectRunResult>;
37
39
  export declare function compareReports(args: CompareReportsArgs): Promise<ProjectRunResult>;
40
+ export declare function prepareReportFilesToCompare(args: CompareReportsArgs): Promise<Diff<string>>;
41
+ export declare function saveDiffFiles(args: CompareReportsArgs): Promise<{
42
+ newIssues?: SourceFileIssue[] | undefined;
43
+ name: string;
44
+ files: {
45
+ current: OutputFiles;
46
+ previous: OutputFiles | Pick<OutputFiles, "json">;
47
+ comparison: Record<"json" | "md", string>;
48
+ };
49
+ }>;
38
50
  export declare function saveReportFiles<T extends 'current' | 'previous'>(args: {
39
51
  project: Pick<ProjectConfig, 'name'> | null;
40
52
  type: T;
@@ -47,6 +59,7 @@ export declare function runInBaseBranch<T>(base: GitBranch, env: RunEnv, fn: ()
47
59
  export declare function checkPrintConfig(args: BaseReportArgs): Promise<EnhancedPersistConfig | null>;
48
60
  export declare function printPersistConfig(ctx: CommandContext): Promise<EnhancedPersistConfig>;
49
61
  export declare function hasDefaultPersistFormats(config: EnhancedPersistConfig): boolean;
62
+ export declare function configFromPatterns(configPatterns: ConfigPatterns, project: ProjectConfig | null): ConfigPatterns;
50
63
  export declare function findNewIssues(args: CompareReportsArgs & {
51
64
  diffFiles: OutputFiles;
52
65
  }): Promise<SourceFileIssue[]>;
@@ -1,7 +1,8 @@
1
1
  /* eslint-disable max-lines */
2
- import { readFile } from 'node:fs/promises';
3
- import { DEFAULT_PERSIST_FORMAT, } from '@code-pushup/models';
4
- import { removeUndefinedAndEmptyProps, stringifyError, } from '@code-pushup/utils';
2
+ import { readFile, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { DEFAULT_PERSIST_FILENAME, DEFAULT_PERSIST_FORMAT, DEFAULT_PERSIST_OUTPUT_DIR, } from '@code-pushup/models';
5
+ import { createReportPath, interpolate, objectFromEntries, readJsonFile, removeUndefinedAndEmptyProps, stringifyError, } from '@code-pushup/utils';
5
6
  import { createCommandContext, parsePersistConfig, persistedFilesFromConfig, runCollect, runCompare, runPrintConfig, } from './cli/index.js';
6
7
  import { DEFAULT_SETTINGS } from './constants.js';
7
8
  import { listChangedFiles, normalizeGitRef } from './git.js';
@@ -9,7 +10,7 @@ import { filterRelevantIssues } from './issues.js';
9
10
  import { saveOutputFiles } from './output-files.js';
10
11
  import { downloadReportFromPortal } from './portal/download.js';
11
12
  export async function createRunEnv(refs, api, options, git) {
12
- const inferredVerbose = Boolean(options?.debug === true || options?.silent === false);
13
+ const inferredVerbose = options?.debug === true || options?.silent === false;
13
14
  // eslint-disable-next-line functional/immutable-data
14
15
  process.env['CP_VERBOSE'] = `${inferredVerbose}`;
15
16
  const [head, base] = await Promise.all([
@@ -33,8 +34,12 @@ export async function runOnProject(project, env) {
33
34
  if (project) {
34
35
  logger.info(`Running Code PushUp on monorepo project ${project.name}`);
35
36
  }
36
- const config = await printPersistConfig(ctx);
37
- logger.debug(`Loaded persist and upload configs from print-config command - ${JSON.stringify(config)}`);
37
+ const config = settings.configPatterns
38
+ ? configFromPatterns(settings.configPatterns, project)
39
+ : await printPersistConfig(ctx);
40
+ logger.debug(settings.configPatterns
41
+ ? `Parsed persist and upload configs from configPatterns option - ${JSON.stringify(config)}`
42
+ : `Loaded persist and upload configs from print-config command - ${JSON.stringify(config)}`);
38
43
  await runCollect(ctx, { hasFormats: hasDefaultPersistFormats(config) });
39
44
  const currReport = await saveReportFiles({
40
45
  project,
@@ -56,24 +61,53 @@ export async function runOnProject(project, env) {
56
61
  if (!prevReport) {
57
62
  return noDiffOutput;
58
63
  }
59
- const compareArgs = { project, env, base, config, currReport, prevReport };
64
+ const compareArgs = { ...baseArgs, currReport, prevReport };
60
65
  return compareReports(compareArgs);
61
66
  }
62
67
  export async function compareReports(args) {
63
- const { project, env: { settings }, currReport, prevReport, config, } = args;
64
- const logger = settings.logger;
65
- const ctx = createCommandContext(settings, project);
66
- await runCompare({
67
- before: prevReport.files.json,
68
- after: currReport.files.json,
69
- label: project?.name,
70
- }, ctx);
68
+ const { ctx, env, config } = args;
69
+ const { logger } = env.settings;
70
+ await prepareReportFilesToCompare(args);
71
+ await runCompare(ctx, { hasFormats: hasDefaultPersistFormats(config) });
72
+ logger.info('Compared reports and generated diff files');
73
+ return saveDiffFiles(args);
74
+ }
75
+ export async function prepareReportFilesToCompare(args) {
76
+ const { config, project, env, ctx } = args;
77
+ const { outputDir = DEFAULT_PERSIST_OUTPUT_DIR, filename = DEFAULT_PERSIST_FILENAME, } = config.persist ?? {};
78
+ const label = project?.name;
79
+ const { logger } = env.settings;
80
+ const originalReports = await Promise.all([args.currReport, args.prevReport].map(({ files }) => readJsonFile(files.json)));
81
+ const labeledReports = label
82
+ ? originalReports.map(report => ({ ...report, label }))
83
+ : originalReports;
84
+ const reportPaths = labeledReports.map((report, idx) => {
85
+ const key = idx === 0 ? 'after' : 'before';
86
+ const filePath = createReportPath({
87
+ outputDir: path.resolve(ctx.directory, outputDir),
88
+ filename,
89
+ format: 'json',
90
+ suffix: key,
91
+ });
92
+ return { key, report, filePath };
93
+ });
94
+ await Promise.all(reportPaths.map(({ filePath, report }) => writeFile(filePath, JSON.stringify(report, null, 2))));
95
+ logger.debug([
96
+ 'Prepared',
97
+ project && `"${project.name}" project's`,
98
+ 'report files for comparison',
99
+ `at ${reportPaths.map(({ filePath }) => filePath).join(' and ')}`,
100
+ ]
101
+ .filter(Boolean)
102
+ .join(' '));
103
+ return objectFromEntries(reportPaths.map(({ key, filePath }) => [key, filePath]));
104
+ }
105
+ export async function saveDiffFiles(args) {
106
+ const { project, ctx, env: { settings }, currReport, prevReport, config, } = args;
71
107
  const diffFiles = persistedFilesFromConfig(config, {
72
108
  directory: ctx.directory,
73
109
  isDiff: true,
74
110
  });
75
- logger.info('Compared reports and generated diff files');
76
- logger.debug(`Generated diff files at ${diffFiles.json} and ${diffFiles.md}`);
77
111
  return {
78
112
  name: projectToName(project),
79
113
  files: {
@@ -101,13 +135,15 @@ export async function saveReportFiles(args) {
101
135
  export async function collectPreviousReport(args) {
102
136
  const { ctx, env, base, project } = args;
103
137
  const { settings } = env;
104
- const { logger } = settings;
138
+ const { logger, configPatterns } = settings;
105
139
  const cachedBaseReport = await loadCachedBaseReport(args);
106
140
  if (cachedBaseReport) {
107
141
  return cachedBaseReport;
108
142
  }
109
143
  return runInBaseBranch(base, env, async () => {
110
- const config = await checkPrintConfig(args);
144
+ const config = configPatterns
145
+ ? configFromPatterns(configPatterns, project)
146
+ : await checkPrintConfig(args);
111
147
  if (!config) {
112
148
  return null;
113
149
  }
@@ -155,7 +191,7 @@ async function loadCachedBaseReportFromArtifacts(args) {
155
191
  return reportPath;
156
192
  }
157
193
  async function loadCachedBaseReportFromPortal(args) {
158
- const { config, env: { settings }, } = args;
194
+ const { config, env: { settings }, base, } = args;
159
195
  const { logger } = settings;
160
196
  if (!config.upload) {
161
197
  return null;
@@ -166,6 +202,8 @@ async function loadCachedBaseReportFromPortal(args) {
166
202
  parameters: {
167
203
  organization: config.upload.organization,
168
204
  project: config.upload.project,
205
+ commit: base.sha,
206
+ withDetails: true,
169
207
  },
170
208
  }).catch((error) => {
171
209
  logger.warn(`Error when downloading previous report from portal, skipping - ${stringifyError(error)}`);
@@ -213,6 +251,28 @@ export function hasDefaultPersistFormats(config) {
213
251
  return (formats == null ||
214
252
  DEFAULT_PERSIST_FORMAT.every(format => formats.includes(format)));
215
253
  }
254
+ export function configFromPatterns(configPatterns, project) {
255
+ const { persist, upload } = configPatterns;
256
+ const variables = {
257
+ projectName: project?.name ?? '',
258
+ };
259
+ return {
260
+ persist: {
261
+ outputDir: interpolate(persist.outputDir, variables),
262
+ filename: interpolate(persist.filename, variables),
263
+ format: persist.format,
264
+ },
265
+ ...(upload && {
266
+ upload: {
267
+ server: upload.server,
268
+ apiKey: upload.apiKey,
269
+ organization: interpolate(upload.organization, variables),
270
+ project: interpolate(upload.project, variables),
271
+ ...(upload.timeout != null && { timeout: upload.timeout }),
272
+ },
273
+ }),
274
+ };
275
+ }
216
276
  export async function findNewIssues(args) {
217
277
  const { base, currReport, prevReport, diffFiles, env: { git, settings: { logger }, }, } = args;
218
278
  await git.fetch('origin', base.ref, ['--depth=1']);
@@ -1 +1 @@
1
- {"version":3,"file":"run-utils.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-utils.js","sourceRoot":"","sources":["../../../../../packages/ci/src/lib/run-utils.ts"],"names":[],"mappings":"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"}