squally-reporter 0.9.0 → 0.10.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 +122 -24
- package/dist/index.d.ts +117 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +708 -76
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -178,6 +178,67 @@ nothing. A run that *does* execute and legitimately contains no tests — an
|
|
|
178
178
|
empty shard, `--only-changed` with no changed test file, `--pass-with-no-tests`
|
|
179
179
|
— is still reported, as a run with zero results.
|
|
180
180
|
|
|
181
|
+
**Timeouts and interrupted tests.** A test that runs out of time is reported
|
|
182
|
+
as failed, and Squally is told that it timed out and what its timeout was -
|
|
183
|
+
including a `test.setTimeout()` or `test.slow()` from inside the test. A test
|
|
184
|
+
that Playwright cuts off because the whole run is stopping (`maxFailures`
|
|
185
|
+
reached, Ctrl+C) is reported as skipped: it did not fail, and it does not
|
|
186
|
+
count against the test.
|
|
187
|
+
|
|
188
|
+
**Cancelled runs.** A run you stop with Ctrl+C, or a CI job cancelled with
|
|
189
|
+
SIGINT, shows in Squally as **Cancelled**: the reporter still sends what
|
|
190
|
+
finished and tells Squally the run was interrupted. Your exit code is
|
|
191
|
+
Playwright's own (130). A run stopped before its first test starts sends
|
|
192
|
+
nothing, like any run that never ran a test. A hard kill (SIGKILL), or
|
|
193
|
+
anything else that ends the process before Playwright finishes, leaves the
|
|
194
|
+
reporter no chance to report the end: the run stays *running* until
|
|
195
|
+
Squally's daily check marks it **incomplete** once the project's run timeout
|
|
196
|
+
(60 minutes by default) has passed. `globalTimeout` running out is not a
|
|
197
|
+
cancel - that run is simply failed.
|
|
198
|
+
|
|
199
|
+
## Which CI, branch and commit a run is reported under
|
|
200
|
+
|
|
201
|
+
Squally counts **CI runs** in its test metrics, so the reporter works out
|
|
202
|
+
which CI system it is running on from that system's own environment:
|
|
203
|
+
|
|
204
|
+
| Provider | Recognised by | Shards grouped by | Branch | Commit |
|
|
205
|
+
|---|---|---|---|---|
|
|
206
|
+
| GitHub Actions | `GITHUB_ACTIONS` | `GITHUB_RUN_ID`-`GITHUB_RUN_ATTEMPT` | `GITHUB_REF_NAME`; pull requests: `GITHUB_HEAD_REF` | `GITHUB_SHA`; pull requests: the PR's head commit |
|
|
207
|
+
| GitLab CI | `GITLAB_CI` | `CI_PIPELINE_ID` | `CI_COMMIT_BRANCH`; merge requests: `CI_MERGE_REQUEST_SOURCE_BRANCH_NAME` | `CI_COMMIT_SHA`; merged-results pipelines: `CI_MERGE_REQUEST_SOURCE_BRANCH_SHA` |
|
|
208
|
+
| CircleCI | `CIRCLECI` | `CIRCLE_WORKFLOW_ID` | `CIRCLE_BRANCH` | `CIRCLE_SHA1` |
|
|
209
|
+
| Jenkins | `BUILD_TAG` (`jenkins-…`) | `BUILD_TAG` | `CHANGE_BRANCH`, else `BRANCH_NAME`, else `GIT_BRANCH` | `GIT_COMMIT` |
|
|
210
|
+
| Azure Pipelines | `TF_BUILD` | `BUILD_BUILDID` | `BUILD_SOURCEBRANCH`; pull requests: `SYSTEM_PULLREQUEST_SOURCEBRANCH` | `BUILD_SOURCEVERSION`; pull requests: `SYSTEM_PULLREQUEST_SOURCECOMMITID` |
|
|
211
|
+
| Bitbucket Pipelines | `BITBUCKET_BUILD_NUMBER` | `BITBUCKET_BUILD_NUMBER` | `BITBUCKET_BRANCH` | `BITBUCKET_COMMIT` |
|
|
212
|
+
| Buildkite | `BUILDKITE` | `BUILDKITE_BUILD_ID` | `BUILDKITE_BRANCH` | `BUILDKITE_COMMIT` |
|
|
213
|
+
| TeamCity | `TEAMCITY_VERSION` | - (set `SQUALLY_CI_RUN_ID`) | from git | `BUILD_VCS_NUMBER` |
|
|
214
|
+
| AWS CodeBuild | `CODEBUILD_BUILD_ID` | `CODEBUILD_BUILD_ID` | `CODEBUILD_WEBHOOK_HEAD_REF` | `CODEBUILD_RESOLVED_SOURCE_VERSION` |
|
|
215
|
+
| Travis CI | `TRAVIS` | `TRAVIS_BUILD_ID` | `TRAVIS_BRANCH`; pull requests: `TRAVIS_PULL_REQUEST_BRANCH` | `TRAVIS_COMMIT`; pull requests: `TRAVIS_PULL_REQUEST_SHA` |
|
|
216
|
+
| Drone | `DRONE` | `DRONE_BUILD_NUMBER` | `DRONE_BRANCH`; pull requests: `DRONE_SOURCE_BRANCH` | `DRONE_COMMIT_SHA` |
|
|
217
|
+
| any other CI | `CI=true` or `CI=1` | - (set `SQUALLY_CI_RUN_ID`) | from git | from git |
|
|
218
|
+
|
|
219
|
+
- **`CI` counts only as `true` or `1`.** `CI=false` or `CI=0` is a local run -
|
|
220
|
+
unless one of the providers above is recognised, which always wins. A run
|
|
221
|
+
that is none of these is local, and local runs are stored but not counted
|
|
222
|
+
in Squally's test metrics.
|
|
223
|
+
- **Pull requests are reported under their own head commit and source
|
|
224
|
+
branch**, not the merge commit CI checks out - that is the commit Squally's
|
|
225
|
+
GitHub check and pull-request comment have to find. The commit message and
|
|
226
|
+
author are that commit's too - never the "Merge … into …" message of the
|
|
227
|
+
checkout.
|
|
228
|
+
- **The head commit is fetched when the checkout lacks it.** With
|
|
229
|
+
`actions/checkout`'s default `fetch-depth: 1` the head commit is not in the
|
|
230
|
+
clone, so the reporter fetches that one commit from `origin`
|
|
231
|
+
(`git fetch --depth=1 --no-tags`), waits at most 3 seconds, and reads its
|
|
232
|
+
message and author. It only does so in a shallow checkout - fetching into a
|
|
233
|
+
full clone would make it shallow for the rest of your job - and never
|
|
234
|
+
changes `HEAD` or any branch. If the fetch fails or takes longer, the
|
|
235
|
+
message and author stay empty and the reporter says so once; the run and
|
|
236
|
+
its exit code are unaffected. Alternatives: `fetch-depth: 2` on the checkout
|
|
237
|
+
step puts the head commit in the clone, so nothing is fetched, and
|
|
238
|
+
`SQUALLY_DISABLE_HEAD_COMMIT_FETCH=true` turns the fetch off.
|
|
239
|
+
- **A tag build has no branch.** A detached checkout never reports `HEAD` as a
|
|
240
|
+
branch name, and `refs/heads/` or `origin/` prefixes are removed.
|
|
241
|
+
|
|
181
242
|
## Tests marked with `test.fail()`
|
|
182
243
|
|
|
183
244
|
Playwright's `test.fail()` marks a test as *expected to fail*: it guards a bug
|
|
@@ -190,10 +251,13 @@ The reporter passes that marker on, so Squally reads such a test the same way
|
|
|
190
251
|
Playwright does:
|
|
191
252
|
|
|
192
253
|
- **Marked and still failing** - shown as passing, with an "expected failure"
|
|
193
|
-
label. It
|
|
194
|
-
|
|
254
|
+
label. It counts as a pass in the test's stability, not against its failure
|
|
255
|
+
rate, and it does not fail Squally's pull-request check.
|
|
195
256
|
- **Marked and now passing** - shown as a failure, because the marker is out of
|
|
196
257
|
date and should be removed.
|
|
258
|
+
- **Marked and timed out** - shown as a failure. Playwright does not count a
|
|
259
|
+
timeout as the expected failure either, so the marker is not passed on for
|
|
260
|
+
it.
|
|
197
261
|
|
|
198
262
|
Both ways of marking a test are recognised: the `test.fail()` modifier and a
|
|
199
263
|
`testInfo.fail()` call inside the test body. `test.skip()` and `test.fixme()`
|
|
@@ -212,12 +276,32 @@ them itself: all shards of one CI run are grouped together and shown as one
|
|
|
212
276
|
run once every shard has finished, with the flip side of that guarantee being
|
|
213
277
|
that the run only completes once every shard *has* reported.
|
|
214
278
|
|
|
215
|
-
Correlation is based on an id read from your CI provider's own environment
|
|
216
|
-
so it costs you nothing on
|
|
217
|
-
provider
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
279
|
+
Correlation is based on an id read from your CI provider's own environment
|
|
280
|
+
(the "Shards grouped by" column above), so it costs you nothing on every
|
|
281
|
+
provider in that table except TeamCity. On TeamCity, on a CI system not in the
|
|
282
|
+
table, or when you shard locally across several separate `--shard`
|
|
283
|
+
invocations, set `SQUALLY_CI_RUN_ID` to the same value for every shard of one
|
|
284
|
+
run - anything unique per CI run and shared by its shards works, e.g. a build
|
|
285
|
+
number your CI system already exposes.
|
|
286
|
+
|
|
287
|
+
**Several jobs in one CI run need their own id.** The id is shared by
|
|
288
|
+
everything in one CI run, so two jobs that are *not* shards of each other -
|
|
289
|
+
say a GitHub Actions matrix over browsers, run without `--shard` - would report
|
|
290
|
+
into the same Squally run, and the second job's results are refused once the
|
|
291
|
+
first job has finished it. The reporter then says so once and sends nothing
|
|
292
|
+
more for that job. Give each job its own id, shared only by its own shards:
|
|
293
|
+
|
|
294
|
+
```yaml
|
|
295
|
+
env:
|
|
296
|
+
SQUALLY_CI_RUN_ID: ${{ github.run_id }}-${{ github.run_attempt }}-${{ matrix.browser }}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
The same refusal, and the same message, happens when a CI system re-runs a
|
|
300
|
+
job under the id of a run that has already completed: a GitLab job retry, an
|
|
301
|
+
Azure Pipelines re-run, a Bitbucket re-run of failed steps, a Buildkite retry.
|
|
302
|
+
On GitHub Actions each re-run attempt is its own run instead - with one catch
|
|
303
|
+
for sharded runs: "Re-run failed jobs" starts an attempt that contains only the
|
|
304
|
+
re-run shards, and a run that waits for all of its shards shows as incomplete.
|
|
221
305
|
|
|
222
306
|
**`playwright merge-reports` is not part of this and is not recommended** for
|
|
223
307
|
getting a single run in Squally - the automatic correlation above is the
|
|
@@ -236,34 +320,48 @@ problem: branch, commit, commit message and author are all read on whichever
|
|
|
236
320
|
machine the reporter actually runs on - during a merge that is the merge job,
|
|
237
321
|
not the shards - and without a checkout there (and without the CI provider's
|
|
238
322
|
own commit variables) they all come out empty. A run with no branch is never
|
|
239
|
-
counted as a run on your stable branch
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
323
|
+
counted as a run on your stable branch - the branch the dashboard measures by
|
|
324
|
+
default - and no branch filter finds it, so a "merged" run could exist in the
|
|
325
|
+
dashboard while missing from everything Squally measures per branch: suite
|
|
326
|
+
stability, and each test's stability, flaky rate and failure rate on that
|
|
327
|
+
branch. The automatic correlation above reads that information from each
|
|
328
|
+
shard's own environment instead, so this problem does not arise.
|
|
244
329
|
|
|
245
330
|
</details>
|
|
246
331
|
|
|
247
332
|
## Tested revision (optional)
|
|
248
333
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
dedicated E2E-test repo pointed at a deployed app), set one of the following
|
|
253
|
-
so Squally knows which application state was actually tested:
|
|
334
|
+
The tested revision is the state of your **application** a run tested, as
|
|
335
|
+
opposed to the commit the run is reported under. Squally does not know it by
|
|
336
|
+
itself - it is **opt-in**, with one of these two:
|
|
254
337
|
|
|
255
338
|
```bash
|
|
256
|
-
#
|
|
257
|
-
#
|
|
339
|
+
# The tests live in the same repo as the application: the commit this CI job
|
|
340
|
+
# checked out is the tested revision.
|
|
258
341
|
SAME_REPO_AS_APP=true
|
|
259
342
|
|
|
260
|
-
#
|
|
261
|
-
#
|
|
343
|
+
# The tests live in a separate repo (e.g. a dedicated E2E repo pointed at a
|
|
344
|
+
# deployed app): pass the tested revision itself - a commit SHA, tag, or
|
|
345
|
+
# branch name/ref.
|
|
262
346
|
TESTED_REVISION=v1.2.0
|
|
263
347
|
```
|
|
264
348
|
|
|
265
|
-
|
|
266
|
-
|
|
349
|
+
- **`SAME_REPO_AS_APP=true`** sends the commit your job checked out: your CI
|
|
350
|
+
provider's own variable for it (`GITHUB_SHA`, `CI_COMMIT_SHA`,
|
|
351
|
+
`CIRCLE_SHA1`, `GIT_COMMIT`, `BUILD_SOURCEVERSION`, `BITBUCKET_COMMIT`,
|
|
352
|
+
`BUILDKITE_COMMIT`, `BUILD_VCS_NUMBER`, `CODEBUILD_RESOLVED_SOURCE_VERSION`,
|
|
353
|
+
`TRAVIS_COMMIT`, `DRONE_COMMIT_SHA`), or `git rev-parse HEAD` where there is
|
|
354
|
+
none - including local runs. Only a commit SHA is sent; if neither yields
|
|
355
|
+
one, the run has no tested revision.
|
|
356
|
+
- **On a pull request the two commits differ, on purpose.** The run is
|
|
357
|
+
reported under the pull request's head commit (see the provider table
|
|
358
|
+
above) - that is what Squally's check and PR comment need. The tested
|
|
359
|
+
revision is the merge commit CI checked out, because that is what the tests
|
|
360
|
+
ran against. On a Bitbucket pull request and a GitHub `pull_request_target`
|
|
361
|
+
run it comes from `git rev-parse HEAD`.
|
|
362
|
+
- **`TESTED_REVISION` wins** when both are set.
|
|
363
|
+
- Neither variable is required - without them, test results are still sent
|
|
364
|
+
and stored exactly as before.
|
|
267
365
|
|
|
268
366
|
**The value is normalised before it is stored**, so that the same revision
|
|
269
367
|
written two ways still compares equal: it is lowercased, and a leading `v` or a
|
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,20 @@ interface AppendResultEntry {
|
|
|
26
26
|
*/
|
|
27
27
|
expectedFailure?: boolean;
|
|
28
28
|
durationMs: number | null;
|
|
29
|
+
/**
|
|
30
|
+
* The attempt's effective timeout in milliseconds, 0 for "no timeout" - see
|
|
31
|
+
* resolveTimeoutMs(). null when the runner does not expose a usable value.
|
|
32
|
+
* (0.10.0; squally-app strips it until it has a field for it.)
|
|
33
|
+
*/
|
|
34
|
+
timeoutMs: number | null;
|
|
35
|
+
/**
|
|
36
|
+
* Playwright reported this attempt as `timedOut`. `status` still says
|
|
37
|
+
* "failed" for it - the app accepts three statuses - and this is what tells
|
|
38
|
+
* a timeout apart from any other failure. Always sent, false included: an
|
|
39
|
+
* absent field from an older reporter must stay distinguishable from "did
|
|
40
|
+
* not time out". (0.10.0; stripped by the app until it has a field for it.)
|
|
41
|
+
*/
|
|
42
|
+
timedOut: boolean;
|
|
29
43
|
errors?: AppendErrorEntry[];
|
|
30
44
|
consoleOutput: string | null;
|
|
31
45
|
tags?: string[];
|
|
@@ -49,6 +63,99 @@ declare function truncateOrNull(value: string | null, max: number): string | nul
|
|
|
49
63
|
declare function flushIntervalFor(shardTotal: number | null): number;
|
|
50
64
|
declare function warnIfKeyWillBeSerialized(config: FullConfig, keyCameFromOptions: boolean): void;
|
|
51
65
|
declare function mapStatus(status: TestResult["status"]): AppendResultEntry["status"];
|
|
66
|
+
declare function isExpectedFailure(expectedStatus: TestCase["expectedStatus"] | undefined, status: TestResult["status"]): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The RUN's outcome for /complete, from Playwright's FullResult status (0.10.0).
|
|
69
|
+
*
|
|
70
|
+
* THE STATUS STAYS passed | failed, exactly as before: anything but "passed" is
|
|
71
|
+
* a failed run, and squally-app accepts no third value. What is new is the
|
|
72
|
+
* flag beside it.
|
|
73
|
+
*
|
|
74
|
+
* "interrupted" IS A STOP FROM OUTSIDE - Ctrl+C, or a CI job cancelled with
|
|
75
|
+
* SIGINT before its SIGTERM - and is sent as `interrupted: true`, which the app
|
|
76
|
+
* records as a cancelled run. MEASURED on 1.62.1: the runner's SIGINT handler
|
|
77
|
+
* ends the run "interrupted" and the CLI exits 130, whether the signal lands
|
|
78
|
+
* mid-test (that test ends "interrupted", the rest never start) or before any
|
|
79
|
+
* test began.
|
|
80
|
+
*
|
|
81
|
+
* "timedout" IS NOT ONE. It is `globalTimeout` running out: the suite's own
|
|
82
|
+
* configuration stopped it, nobody cancelled anything, and it stays an ordinary
|
|
83
|
+
* failed run. "failed" covers maxFailures too - Playwright stops the run
|
|
84
|
+
* itself there, and the test it cuts off ends "interrupted", but the RUN ends
|
|
85
|
+
* "failed".
|
|
86
|
+
*/
|
|
87
|
+
declare function completionFor(status: FullResult["status"]): {
|
|
88
|
+
status: "passed" | "failed";
|
|
89
|
+
interrupted: boolean;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* The attempt's effective timeout in ms, as Playwright applied it (0.10.0).
|
|
93
|
+
*
|
|
94
|
+
* TestCase.timeout, read at onTestEnd. MEASURED on 1.62.1 and on 1.30.0, this
|
|
95
|
+
* package's peer floor: it already includes a test.setTimeout() inside the
|
|
96
|
+
* test body (800 for a config timeout of 1500) and test.slow() (4500, three
|
|
97
|
+
* times 1500). 0 is Playwright's own "no timeout" and is sent as 0.
|
|
98
|
+
*
|
|
99
|
+
* Guarded anyway - a runner that does not hand over a whole number within what
|
|
100
|
+
* the app can store gets null, not a guess.
|
|
101
|
+
*
|
|
102
|
+
* NOT STORED YET, and sent anyway. squally-app's result schema has no field
|
|
103
|
+
* for it and strips unknown keys (its own test pins that:
|
|
104
|
+
* lib/ingest-v2-contract.test.ts). Usually the receiving side goes first here
|
|
105
|
+
* (see prepareConsoleOutput); this time the order is the other way round on
|
|
106
|
+
* purpose (26.09.2026): an absent field breaks nothing, and a reporter that
|
|
107
|
+
* already sends it lets the app's column fill from the first run after the app
|
|
108
|
+
* ships, without waiting for customers to upgrade a second time.
|
|
109
|
+
*/
|
|
110
|
+
declare function resolveTimeoutMs(test: Pick<TestCase, "timeout"> | {
|
|
111
|
+
timeout?: unknown;
|
|
112
|
+
}): number | null;
|
|
113
|
+
declare function detectCiProvider(env: NodeJS.ProcessEnv): string | null;
|
|
114
|
+
interface GitContext {
|
|
115
|
+
branch: string | null;
|
|
116
|
+
commitSha: string | null;
|
|
117
|
+
commitMessage: string | null;
|
|
118
|
+
authorName: string | null;
|
|
119
|
+
}
|
|
120
|
+
/** Everything the git context reads from (and says to) the outside world -
|
|
121
|
+
* injected so the tests need neither a repository nor a CI job. */
|
|
122
|
+
interface GitContextIo {
|
|
123
|
+
git: (command: string) => string | null;
|
|
124
|
+
readFile: (filePath: string) => string;
|
|
125
|
+
warn: (message: string) => void;
|
|
126
|
+
/** Fetches one commit from origin; resolves true only when git succeeded in time. Never rejects. */
|
|
127
|
+
fetchCommit: (sha: string, timeoutMs: number) => Promise<boolean>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* `git fetch --depth=1 --no-tags origin <sha>`, bounded by `timeoutMs` no
|
|
131
|
+
* matter what git does. Resolves true only when git exited 0 in time; never
|
|
132
|
+
* rejects.
|
|
133
|
+
*
|
|
134
|
+
* ASYNC, UNLIKE THE OTHER GIT CALLS, and for the bound. A fetch is network:
|
|
135
|
+
* execSync would freeze the runner's event loop for the whole wait, and a
|
|
136
|
+
* synchronous spawn with a timeout still waits for its stdio pipes to close -
|
|
137
|
+
* which a remote helper git started can hold open past the kill. Here nothing
|
|
138
|
+
* is piped (stdio "ignore"), the answer is the child's "exit", and a timer
|
|
139
|
+
* settles the promise at the deadline even if git never exits at all.
|
|
140
|
+
*
|
|
141
|
+
* The timer is ref'd on purpose: this promise is awaited from beginRun, which
|
|
142
|
+
* onEnd waits for - see delay() for what an unref'd wait there once cost.
|
|
143
|
+
*
|
|
144
|
+
* GIT_TERMINAL_PROMPT=0: a remote that asks for credentials fails at once
|
|
145
|
+
* instead of waiting for an answer nobody will type.
|
|
146
|
+
*/
|
|
147
|
+
declare function fetchCommitFromOrigin(sha: string, timeoutMs: number, cwd?: string): Promise<boolean>;
|
|
148
|
+
declare function normalizeBranch(raw: string | null | undefined): string | null;
|
|
149
|
+
declare function resolveGitContext(env: NodeJS.ProcessEnv, io?: GitContextIo): GitContext;
|
|
150
|
+
/**
|
|
151
|
+
* The run's git context, fetching a pull request's head commit when the
|
|
152
|
+
* checkout does not have it (0.10.0).
|
|
153
|
+
*
|
|
154
|
+
* Only a head commit is ever fetched: the one case where the reported commit
|
|
155
|
+
* is deliberately not the checked-out one, so the checkout cannot be expected
|
|
156
|
+
* to hold it - at actions/checkout's default depth of 1 it does not.
|
|
157
|
+
*/
|
|
158
|
+
declare function resolveGitContextForRun(env: NodeJS.ProcessEnv, io?: GitContextIo): Promise<GitContext>;
|
|
52
159
|
declare function detectCiRunId(env: NodeJS.ProcessEnv, generateFallback: () => string): string;
|
|
53
160
|
interface ProjectSuiteLike {
|
|
54
161
|
project(): {
|
|
@@ -61,7 +168,7 @@ interface ResolvedRevision {
|
|
|
61
168
|
revision: string;
|
|
62
169
|
source: "ci_native" | "passed_param";
|
|
63
170
|
}
|
|
64
|
-
declare function resolveTestedRevision(): ResolvedRevision | null;
|
|
171
|
+
declare function resolveTestedRevision(env?: NodeJS.ProcessEnv, io?: GitContextIo): ResolvedRevision | null;
|
|
65
172
|
declare function toPosixPath(p: string): string;
|
|
66
173
|
declare function stripAnsi(value: string): string;
|
|
67
174
|
declare function maskSecrets(value: string): string;
|
|
@@ -149,6 +256,7 @@ export default class SquallyReporter implements Reporter {
|
|
|
149
256
|
*/
|
|
150
257
|
private resultsProduced;
|
|
151
258
|
private sendingDisabled;
|
|
259
|
+
private warnedAlreadyComplete;
|
|
152
260
|
private flushTimerHandle;
|
|
153
261
|
private inFlightFlushes;
|
|
154
262
|
private runStarted;
|
|
@@ -192,8 +300,16 @@ export declare const __internal: {
|
|
|
192
300
|
stripAnsi: typeof stripAnsi;
|
|
193
301
|
normalizeRevision: typeof normalizeRevision;
|
|
194
302
|
resolveTestedRevision: typeof resolveTestedRevision;
|
|
303
|
+
completionFor: typeof completionFor;
|
|
195
304
|
toPosixPath: typeof toPosixPath;
|
|
196
305
|
detectCiRunId: typeof detectCiRunId;
|
|
306
|
+
detectCiProvider: typeof detectCiProvider;
|
|
307
|
+
resolveGitContext: typeof resolveGitContext;
|
|
308
|
+
resolveGitContextForRun: typeof resolveGitContextForRun;
|
|
309
|
+
fetchCommitFromOrigin: typeof fetchCommitFromOrigin;
|
|
310
|
+
normalizeBranch: typeof normalizeBranch;
|
|
311
|
+
isExpectedFailure: typeof isExpectedFailure;
|
|
312
|
+
resolveTimeoutMs: typeof resolveTimeoutMs;
|
|
197
313
|
resolveProjectName: typeof resolveProjectName;
|
|
198
314
|
maskSecrets: typeof maskSecrets;
|
|
199
315
|
prepareConsoleOutput: typeof prepareConsoleOutput;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;AAcnC,UAAU,sBAAsB;IAI9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyCD,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|