squally-reporter 0.10.1 → 0.11.0

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
@@ -208,7 +208,7 @@ runners). Other CI systems deliver a cancel in their own way - check that
208
208
  Playwright is the process that receives it.
209
209
 
210
210
  Without that - or after any hard kill (SIGKILL) - the reporter never gets to
211
- report the end: the run stays *running* until Squally's daily check marks it
211
+ report the end: the run stays *running* until Squally's hourly check marks it
212
212
  **incomplete** once the project's run timeout (60 minutes by default) has
213
213
  passed. A run stopped before its first test starts sends nothing, like any
214
214
  run that never ran a test, and `globalTimeout` running out is not a cancel -
@@ -236,8 +236,11 @@ which CI system it is running on from that system's own environment:
236
236
 
237
237
  - **`CI` counts only as `true` or `1`.** `CI=false` or `CI=0` is a local run -
238
238
  unless one of the providers above is recognised, which always wins. A run
239
- that is none of these is local, and local runs are stored but not counted
240
- in Squally's test metrics.
239
+ that is none of these is local. Local runs are listed with all other runs,
240
+ and have numbers of their own: Squally's figures count CI runs by default,
241
+ and the **All · CI · Local** switch shows local runs on their own, or both.
242
+ A local run never posts a GitHub check, a pull-request comment or a Slack
243
+ message.
241
244
  - **Pull requests are reported under their own head commit and source
242
245
  branch**, not the merge commit CI checks out - that is the commit Squally's
243
246
  GitHub check and pull-request comment have to find. The commit message and
@@ -256,6 +259,22 @@ which CI system it is running on from that system's own environment:
256
259
  `SQUALLY_DISABLE_HEAD_COMMIT_FETCH=true` turns the fetch off.
257
260
  - **A tag build has no branch.** A detached checkout never reports `HEAD` as a
258
261
  branch name, and `refs/heads/` or `origin/` prefixes are removed.
262
+ - **A link to the CI run (0.11.0).** The reporter sends the page of the CI run,
263
+ so Squally can link a run to it. It is read from each provider's own
264
+ variable, sent only as an `https://` URL of at most 2,048 characters, and
265
+ never opened by Squally - only shown as a link:
266
+
267
+ | Provider | Link |
268
+ |---|---|
269
+ | GitHub Actions | `GITHUB_SERVER_URL`/`GITHUB_REPOSITORY`/actions/runs/`GITHUB_RUN_ID`/attempts/`GITHUB_RUN_ATTEMPT` |
270
+ | GitLab CI | `CI_PIPELINE_URL` |
271
+ | Jenkins | `BUILD_URL` (only with Jenkins served over https) |
272
+ | Buildkite | `BUILDKITE_BUILD_URL` |
273
+ | Travis CI | `TRAVIS_BUILD_WEB_URL` |
274
+ | Drone | `DRONE_BUILD_LINK` |
275
+
276
+ Other providers send no link. It is the run's page, never one job's, and it
277
+ is the same with `SQUALLY_CI_RUN_ID` set.
259
278
 
260
279
  ## Tests marked with `test.fail()`
261
280
 
@@ -302,24 +321,64 @@ invocations, set `SQUALLY_CI_RUN_ID` to the same value for every shard of one
302
321
  run - anything unique per CI run and shared by its shards works, e.g. a build
303
322
  number your CI system already exposes.
304
323
 
305
- **Several jobs in one CI run need their own id.** The id is shared by
306
- everything in one CI run, so two jobs that are *not* shards of each other -
307
- say a GitHub Actions matrix over browsers, run without `--shard` - would report
308
- into the same Squally run, and the second job's results are refused once the
309
- first job has finished it. The reporter then says so once and sends nothing
310
- more for that job. Give each job its own id, shared only by its own shards:
324
+ **Several jobs in one CI run need their own key (0.11.0).** The id is shared
325
+ by everything in one CI run, so two jobs that are *not* shards of each other -
326
+ a GitHub Actions matrix over browsers run without `--shard`, or an `api` and a
327
+ `ui` suite - would report into the same Squally run. Give each job its own
328
+ `SQUALLY_CI_JOB_KEY`, shared only by that job's own shards:
311
329
 
312
330
  ```yaml
313
- env:
314
- SQUALLY_CI_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.browser }}
331
+ jobs:
332
+ test:
333
+ strategy:
334
+ matrix:
335
+ browser: [chromium, firefox]
336
+ env:
337
+ SQUALLY_CI_JOB_KEY: ${{ matrix.browser }}
338
+ steps:
339
+ - run: exec ./node_modules/.bin/playwright test --project=${{ matrix.browser }}
315
340
  ```
316
341
 
317
- The same refusal, and the same message, happens when a CI system re-runs a
318
- job under the id of a run that has already completed: a GitLab job retry, an
319
- Azure Pipelines re-run, a Bitbucket re-run of failed steps, a Buildkite retry.
320
- On GitHub Actions each re-run attempt is its own run instead - with one catch
321
- for sharded runs: "Re-run failed jobs" starts an attempt that contains only the
322
- re-run shards, and a run that waits for all of its shards shows as incomplete.
342
+ The reporter puts the key into the id - `<GITHUB_RUN_ID>-<key>-<GITHUB_RUN_ATTEMPT>`
343
+ on GitHub Actions, `<provider id>-<key>` elsewhere - so each job is its own run
344
+ in Squally, and a re-run of one job links to that job's own earlier attempt.
345
+ The key may hold letters, digits, `.`, `_` and `-`, at most 64 characters; an
346
+ invalid key is reported once and ignored, and your test run is unaffected.
347
+ Without a key the id is exactly what it was before 0.11.0. A suite that is
348
+ sharded *and* split into jobs uses the same key for all shards of one job:
349
+ `SQUALLY_CI_JOB_KEY: ${{ matrix.suite }}` beside `--shard=${{ matrix.shard }}/2`.
350
+
351
+ **Replaces the hand-built id.** Until 0.11.0 this section suggested
352
+ `SQUALLY_CI_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.browser }}`.
353
+ It still groups each job correctly, but Squally cannot tell its attempts apart,
354
+ so a re-run is never linked to the attempt before it. Switch to
355
+ `SQUALLY_CI_JOB_KEY`. An explicit `SQUALLY_CI_RUN_ID` still wins for the id;
356
+ the key is then only sent alongside it.
357
+
358
+ **When two jobs collide anyway, Squally refuses the second one at the start**
359
+ (squally-app with block 1b, reporter 0.11.0). The reporter prints one block,
360
+ sends nothing more for that job, and leaves your test run and its exit code
361
+ alone:
362
+
363
+ - `ci_run_collision` - another job already reports under this CI run id (and
364
+ shard). Give every job its own `SQUALLY_CI_JOB_KEY`.
365
+ - `ci_run_mixed` - the id would put a sharded job and an unsharded one, or
366
+ shards of different totals, into one run. The same fix.
367
+
368
+ Before 0.11.0 the second job was handed the first job's run instead, and its
369
+ results were refused once that run completed; a reporter older than 0.11.0
370
+ still behaves that way, and prints "Squally has already completed run …".
371
+
372
+ **Re-runs.** On GitHub Actions every re-run attempt is its own run in Squally,
373
+ linked to the attempt before it ("Re-run of #N"). "Re-run failed jobs" runs only
374
+ the shards that did not pass; that attempt waits only for those shards,
375
+ completes once they have reported, and passes or fails on the tests they ran -
376
+ the reused shards are neither waited for nor counted, and the run page shows
377
+ them as "passed in #N · not re-run". A re-run shard that never reports still
378
+ leaves the run incomplete after the run timeout. Other CI systems re-run a job
379
+ under the id of a run that has already completed - a GitLab job retry, an Azure
380
+ Pipelines re-run, a Bitbucket re-run of failed steps, a Buildkite retry - and
381
+ those results are refused, with the "already completed" message above.
323
382
 
324
383
  **`playwright merge-reports` is not part of this and is not recommended** for
325
384
  getting a single run in Squally - the automatic correlation above is the
@@ -389,9 +448,10 @@ happens, so a value that looks different in the dashboard is not a mystery.
389
448
 
390
449
  ## Troubleshooting
391
450
 
392
- Set `SQUALLY_DEBUG=1` to print detail that is otherwise kept quiet - currently
393
- the browser-console extraction: how many messages were found, or that an
394
- attempt's trace held none. Everything that is *not* ordinary (a trace that
451
+ Set `SQUALLY_DEBUG=1` to print detail that is otherwise kept quiet - the
452
+ browser-console extraction (how many messages were found, or that an attempt's
453
+ trace held none) and, since 0.11.0, a CI run link that was not sent because it
454
+ was not an `https://` URL. Everything that is *not* ordinary (a trace that
395
455
  cannot be read, an unsupported schema version, a rejected upload) is printed
396
456
  without it.
397
457
 
package/dist/index.d.ts CHANGED
@@ -160,7 +160,75 @@ declare function resolveGitContext(env: NodeJS.ProcessEnv, io?: GitContextIo): G
160
160
  * to hold it - at actions/checkout's default depth of 1 it does not.
161
161
  */
162
162
  declare function resolveGitContextForRun(env: NodeJS.ProcessEnv, io?: GitContextIo): Promise<GitContext>;
163
- declare function detectCiRunId(env: NodeJS.ProcessEnv, generateFallback: () => string): string;
163
+ declare function detectCiRunId(env: NodeJS.ProcessEnv, generateFallback: () => string, jobKey?: string | null): string;
164
+ /**
165
+ * SQUALLY_CI_JOB_KEY, checked by squally-app's own rule (letters, digits,
166
+ * '.', '_' and '-', at most 64). An invalid key is a warning, never a failed
167
+ * test run: the reporter continues WITHOUT a key - the id it would have built
168
+ * without one, and no ciJobKey - rather than send a value the server refuses
169
+ * or guess a cleaned-up one. Unset or empty: no key, no warning.
170
+ */
171
+ declare function resolveCiJobKey(env: NodeJS.ProcessEnv): {
172
+ key: string | null;
173
+ warning: string | null;
174
+ };
175
+ /**
176
+ * The attempt to send as ciRunAttempt (0.11.0) - only when THIS reporter built
177
+ * the CI run id from GITHUB_RUN_ATTEMPT, so the id ends in "-<attempt>" and
178
+ * squally-app can link a re-run to the attempt before it (detectCiAttempt
179
+ * there reads the stem off that suffix). Never with SQUALLY_CI_RUN_ID: only
180
+ * the reporter knows the id is GitHub's, and an id the user wrote proves
181
+ * nothing about its suffix.
182
+ *
183
+ * GITHUB ONLY, by the providers' documentation: GitHub's attempt counts runs
184
+ * of the whole workflow run and is part of its id. GitLab's
185
+ * CI_JOB_RETRY_COUNT, Buildkite's BUILDKITE_RETRY_COUNT and Azure's job
186
+ * attempt count retries of ONE JOB inside a build whose id stays the same - not
187
+ * an attempt of the run squally-app groups - and Jenkins, Travis and Drone
188
+ * document no counter at all.
189
+ */
190
+ declare function detectCiRunAttempt(env: NodeJS.ProcessEnv): number | null;
191
+ /** An absolute https: URL with a host - squally-app's isHttpsUrl. */
192
+ declare function isHttpsUrl(value: string): boolean;
193
+ /**
194
+ * The CI run's page, sent as ciRunUrl (0.11.0) so Squally can link a run to
195
+ * its CI run. One builder per provider, from each provider's documented
196
+ * variable:
197
+ * - GitHub Actions: GITHUB_SERVER_URL/GITHUB_REPOSITORY/actions/runs/
198
+ * GITHUB_RUN_ID - the URL GitHub's own docs give - and /attempts/
199
+ * GITHUB_RUN_ATTEMPT when set, the page of exactly this attempt;
200
+ * - GitLab CI: CI_PIPELINE_URL ("The URL for the pipeline details");
201
+ * - Jenkins: BUILD_URL ("The URL where the results of this build can be
202
+ * found");
203
+ * - Buildkite: BUILDKITE_BUILD_URL ("The url for this build on Buildkite");
204
+ * - Travis CI: TRAVIS_BUILD_WEB_URL ("URL to the build log");
205
+ * - Drone: DRONE_BUILD_LINK ("a deep link the Drone build results").
206
+ * The run, never the job: the id groups a whole build's jobs, so its link is
207
+ * the build's. Independent of SQUALLY_CI_RUN_ID - the page is the same.
208
+ *
209
+ * ONLY HTTPS, AT MOST 2048 CHARACTERS (squally-app's rule). Anything else - a
210
+ * Jenkins without TLS, a value that is not a URL - is left out silently, with
211
+ * a debug line: a missing link is no reason to warn on every run.
212
+ */
213
+ declare function detectCiRunUrl(env: NodeJS.ProcessEnv): string | null;
214
+ /**
215
+ * What the reporter prints when squally-app refuses this job's begin with a
216
+ * 409 (0.11.0). One block per code; nothing is retried and nothing more is
217
+ * sent for this job - the test run itself is untouched.
218
+ * - ci_run_collision: another job already reports this CI run id's slot;
219
+ * - ci_run_mixed: the id would group an unsharded job with a sharded one,
220
+ * or shards of different totals;
221
+ * - anything else: the server's own sentence.
222
+ */
223
+ declare function beginRefusalMessage(refusal: {
224
+ code: string | null;
225
+ message: string | null;
226
+ detail: string;
227
+ }, where: {
228
+ ciRunId: string;
229
+ shardIndex: number | null;
230
+ jobKey: string | null;
231
+ }): string;
164
232
  interface ProjectSuiteLike {
165
233
  project(): {
166
234
  name: string;
@@ -176,6 +244,8 @@ declare function resolveTestedRevision(env?: NodeJS.ProcessEnv, io?: GitContextI
176
244
  declare function toPosixPath(p: string): string;
177
245
  declare function stripAnsi(value: string): string;
178
246
  declare function maskSecrets(value: string): string;
247
+ /** One piece of free text as it goes on the wire: masked, then cut to maxChars. */
248
+ declare function outgoingText(value: string, maxChars: number): string;
179
249
  /**
180
250
  * The console output to send, and the size it had before the cut.
181
251
  *
@@ -203,6 +273,31 @@ declare function prepareConsoleOutput(value: string | null): {
203
273
  truncatedFromBytes: number | null;
204
274
  };
205
275
  declare function mapErrors(errors: readonly TestError[]): AppendErrorEntry[] | undefined;
276
+ /**
277
+ * A result's free text as it goes on the wire (0.10.2): THE one place it is
278
+ * masked and cut. Every error's message, stack and snippet, the page snapshot
279
+ * (errorContext) and the console output - the same fields squally-app masks
280
+ * on arrival (maskResultText, lib/ingest-v2-core.ts), with the same patterns.
281
+ *
282
+ * One function rather than a mask at each field's call site, so a field added
283
+ * to a result later is added here - next to the others - or not at all.
284
+ *
285
+ * FAILS CLOSED. Masking is plain regex replacement and is not expected to
286
+ * throw, but onTestEnd must never throw into the customer's run, and falling
287
+ * back to the UNMASKED text would be the one outcome worse than a crash here.
288
+ * So a failure drops the text: the result still goes out, with its status,
289
+ * and one placeholder error saying why its text is missing.
290
+ */
291
+ declare function outgoingResultText(raw: {
292
+ errors: AppendErrorEntry[] | undefined;
293
+ errorContext: string | null;
294
+ consoleOutput: string | null;
295
+ }): {
296
+ errors: AppendErrorEntry[] | undefined;
297
+ errorContext: string | null;
298
+ consoleOutput: string | null;
299
+ consoleTruncatedFromBytes: number | null;
300
+ };
206
301
  declare function attemptQualifiesForArtifacts(mappedStatus: AppendResultEntry["status"], retryCount: number): boolean;
207
302
  declare function artifactKey(testName: string, filePath: string, retryCount: number, repeatIndex: number, type: ArtifactType): string;
208
303
  declare function parseRetryAfterMs(headerValue: string | null, nowMs: number): number | null;
@@ -221,6 +316,14 @@ export default class SquallyReporter implements Reporter {
221
316
  private dispatcher;
222
317
  private ciRunId;
223
318
  private shardIndex;
319
+ /**
320
+ * 0.11.0: one per reporter process, the same on every retry of begin - a
321
+ * retried begin is the same job, another process with the same CI run id
322
+ * and shard is not (squally-app answers that one 409 ci_run_collision).
323
+ */
324
+ private readonly beginToken;
325
+ /** SQUALLY_CI_JOB_KEY, validated (resolveCiJobKey) - or null. */
326
+ private ciJobKey;
224
327
  private shardTotal;
225
328
  private projectName;
226
329
  private runTags;
@@ -308,6 +411,11 @@ export declare const __internal: {
308
411
  toPosixPath: typeof toPosixPath;
309
412
  detectCiRunId: typeof detectCiRunId;
310
413
  detectCiProvider: typeof detectCiProvider;
414
+ resolveCiJobKey: typeof resolveCiJobKey;
415
+ detectCiRunAttempt: typeof detectCiRunAttempt;
416
+ detectCiRunUrl: typeof detectCiRunUrl;
417
+ isHttpsUrl: typeof isHttpsUrl;
418
+ beginRefusalMessage: typeof beginRefusalMessage;
311
419
  resolveGitContext: typeof resolveGitContext;
312
420
  resolveGitContextForRun: typeof resolveGitContextForRun;
313
421
  fetchCommitFromOrigin: typeof fetchCommitFromOrigin;
@@ -316,6 +424,13 @@ export declare const __internal: {
316
424
  resolveTimeoutMs: typeof resolveTimeoutMs;
317
425
  resolveProjectName: typeof resolveProjectName;
318
426
  maskSecrets: typeof maskSecrets;
427
+ MASK_PATTERNS: {
428
+ name: string;
429
+ pattern: RegExp;
430
+ replace: string;
431
+ }[];
432
+ outgoingText: typeof outgoingText;
433
+ outgoingResultText: typeof outgoingResultText;
319
434
  prepareConsoleOutput: typeof prepareConsoleOutput;
320
435
  mapErrors: typeof mapErrors;
321
436
  parseRetryAfterMs: typeof parseRetryAfterMs;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}