faf-taf-git 2.4.2 → 2.4.4
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/CHANGELOG.md +24 -1
- package/README.md +1 -4
- package/RECEIPT-FORMAT.md +2 -2
- package/dist/badge.d.ts.map +1 -1
- package/dist/badge.js +2 -3
- package/dist/badge.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/parsers/index.js +5 -1
- package/dist/parsers/index.js.map +1 -1
- package/dist/parsers/jest.d.ts +3 -1
- package/dist/parsers/jest.d.ts.map +1 -1
- package/dist/parsers/jest.js.map +1 -1
- package/dist/parsers/junit.d.ts.map +1 -1
- package/dist/parsers/junit.js +6 -0
- package/dist/parsers/junit.js.map +1 -1
- package/dist/receipt-push.d.ts +21 -0
- package/dist/receipt-push.d.ts.map +1 -0
- package/dist/receipt-push.js +44 -0
- package/dist/receipt-push.js.map +1 -0
- package/dist/taf-core.d.ts +8 -0
- package/dist/taf-core.d.ts.map +1 -1
- package/dist/taf-core.js +17 -1
- package/dist/taf-core.js.map +1 -1
- package/package.json +1 -1
- package/project.faf +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!-- faf: faf-taf-git | TypeScript | cli | A Test Receipt Printer for git -->
|
|
2
|
-
<!-- faf: doc=changelog | latest=v2.4.
|
|
2
|
+
<!-- faf: doc=changelog | latest=v2.4.3 | canonical=project.faf | family=TAF -->
|
|
3
3
|
|
|
4
4
|
# Changelog
|
|
5
5
|
|
|
@@ -8,6 +8,29 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
9
9
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
10
10
|
|
|
11
|
+
## [Unreleased]
|
|
12
|
+
|
|
13
|
+
## [2.4.4] - 2026-11-01
|
|
14
|
+
|
|
15
|
+
Receipts tell the truth about skips: a run where every test was skipped is recorded as SKIPPED, the badge counts only real passes, and each receipt says where it ran.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- With no `.taf`, the error said to run `faf taf init`, a command that doesn't exist. It now gives the line that makes one: `echo 'test_history: []' > .taf`.
|
|
19
|
+
- Every receipt said `trigger: github-actions`, even a local run. It now says `github-actions` on GitHub Actions, `ci` on another CI, and `local` otherwise.
|
|
20
|
+
- A run where every test was skipped was recorded as `PASSED`. It is now `SKIPPED`, a new `result` value in the receipt format (`RECEIPT-FORMAT.md`), and its badge is gray.
|
|
21
|
+
- The badge counted skipped tests as passing: 2332 passed and 1 skipped showed `2333/2333 passing (1 skipped)`. It now shows `2332/2333 passing (1 skipped)`.
|
|
22
|
+
|
|
23
|
+
## [2.4.3] - 2026-10-31
|
|
24
|
+
|
|
25
|
+
A receipt that loses a push race is retried instead of lost, and skipped Go tests count as skipped, not passed.
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- **A receipt that lost a push race is no longer lost.** Two runs finishing close together both commit on the same `taf-receipts` tip, and the second push was rejected with a warning. The Action now fetches the branch again, adds its receipt on top of the winner's, and pushes, up to 5 tries. Only with `target-branch`: that branch holds nothing but `.taf`. Nothing is force-pushed; the branch only grows. Pushing to the current branch is unchanged
|
|
29
|
+
- **Skipped tests in a JUnit report no longer count as passed** when the report leaves `skipped` out of its counts. gotestsum (Go) writes `tests` and `failures` on its root and nothing else, so 1 pass, 1 fail and 1 skip read as 2 passed. The `<skipped>` testcases are counted instead
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **The README recipe no longer has a `concurrency` group.** GitHub cancels a waiting run when a newer one joins the group, so a run could end with no tests and no receipt. Runs that race for the push are retried instead (above)
|
|
33
|
+
|
|
11
34
|
## [2.4.2] - 2026-10-30
|
|
12
35
|
|
|
13
36
|
undici 6.29.1 in the Action bundle (security), and the npm package ships only the CLI: 34 kB instead of 1.0 MB.
|
package/README.md
CHANGED
|
@@ -51,9 +51,6 @@ on:
|
|
|
51
51
|
pull_request:
|
|
52
52
|
workflow_dispatch:
|
|
53
53
|
|
|
54
|
-
concurrency:
|
|
55
|
-
group: tests-${{ github.ref }} # one run at a time per branch, so receipts never collide
|
|
56
|
-
|
|
57
54
|
jobs:
|
|
58
55
|
test:
|
|
59
56
|
runs-on: ubuntu-latest
|
|
@@ -76,7 +73,7 @@ jobs:
|
|
|
76
73
|
|
|
77
74
|
- name: Print the receipt
|
|
78
75
|
if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
|
|
79
|
-
uses: Wolfe-Jam/faf-taf-git@v2.4.
|
|
76
|
+
uses: Wolfe-Jam/faf-taf-git@v2.4.4
|
|
80
77
|
with:
|
|
81
78
|
test-output-file: test-output.txt
|
|
82
79
|
target-branch: taf-receipts
|
package/RECEIPT-FORMAT.md
CHANGED
|
@@ -36,7 +36,7 @@ last_updated: 2026-06-28T09:05:00Z # ISO 8601 UTC — bumped on each append
|
|
|
36
36
|
|
|
37
37
|
test_history: # append-only, oldest → newest
|
|
38
38
|
- timestamp: 2026-06-28T09:05:00Z # ISO 8601 UTC — the receipt date
|
|
39
|
-
result: PASSED # PASSED | FAILED | IMPROVED | DEGRADED
|
|
39
|
+
result: PASSED # PASSED | FAILED | IMPROVED | DEGRADED | SKIPPED
|
|
40
40
|
tests: # itemized lines (nested)
|
|
41
41
|
total: 7
|
|
42
42
|
passed: 7
|
|
@@ -52,7 +52,7 @@ test_history: # append-only, oldest → newest
|
|
|
52
52
|
|---|---|---|
|
|
53
53
|
| `test_history[]` | **required** | the spine — the one hard parse requirement; append-only, never edit a past entry |
|
|
54
54
|
| `…timestamp` | **required** | ISO 8601 UTC |
|
|
55
|
-
| `…result` | **required** | enum: `PASSED` \| `FAILED` \| `IMPROVED` \| `DEGRADED` |
|
|
55
|
+
| `…result` | **required** | enum: `PASSED` \| `FAILED` \| `IMPROVED` \| `DEGRADED` \| `SKIPPED` (added in 2.4.4: tests were found and every one was skipped). Readers should show a value they don't know rather than reject the receipt |
|
|
56
56
|
| `…tests{total,passed,failed}` | **required** | nested; `skipped` optional |
|
|
57
57
|
| `…trigger` / `…command` | optional | provenance of the run |
|
|
58
58
|
| `format_version` `project` `created` `last_updated` | writer-emitted | the canonical writer always emits these; readers tolerate their absence |
|
package/dist/badge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/badge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiClF;AAqCD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/badge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAaD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAiClF;AAqCD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,WAAW,CA4BrE"}
|
package/dist/badge.js
CHANGED
|
@@ -129,9 +129,8 @@ function generateBadge(options = {}) {
|
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
131
|
const skippedSuffix = run.skipped > 0 ? ` (${run.skipped} skipped)` : '';
|
|
132
|
-
const
|
|
133
|
-
const
|
|
134
|
-
const color = run.failed === 0 ? COLOR_PASS : COLOR_FAIL;
|
|
132
|
+
const value = `${run.passed}/${run.total} passing${skippedSuffix}`;
|
|
133
|
+
const color = run.failed > 0 ? COLOR_FAIL : run.passed === 0 ? COLOR_NONE : COLOR_PASS;
|
|
135
134
|
return {
|
|
136
135
|
success: true,
|
|
137
136
|
svg: renderBadgeSvg(label, value, color),
|
package/dist/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../src/badge.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BH,wCAiCC;AAwCD,
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../src/badge.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCH,8BA8GC;AA+ED,gCAEC;AA9ND,iDAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCH,8BA8GC;AA+ED,gCAEC;AA9ND,iDAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAgE;AAChE,yCAAwD;AACxD,mCAAwC;AAuBxC;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,UAAsB,EAAE;IACtD,MAAM,EACJ,IAAI,EACJ,UAAU,GAAG,KAAK,EAClB,aAAa,GAAG,sCAAsC,EACtD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,OAAO,CAAC,GAAG,GACrB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,2IAA2I;aACnJ,CAAC;QACJ,CAAC;QAED,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAErE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,+BAA+B,QAAQ,EAAE;aACjD,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO;YAAE,MAAM,CAAC,QAAQ,MAAM,CAAC,MAAM,eAAe,QAAQ,EAAE,CAAC,CAAC;QAEpE,oBAAoB;QACpB,MAAM,WAAW,GAAG,IAAA,yBAAe,EAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBAC/B,MAAM,CAAC,oCAAoC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACrE,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,4BAAkB;aAC1B,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,mBAAmB,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,gBAAgB,CAAC,CAAC;QACrF,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE;oBACX,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC3B;gBACD,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,sBAAW;aACnB,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE1D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO;gBAAE,MAAM,CAAC,gCAAgC,CAAC,CAAC;YAEtD,4BAA4B;YAC5B,IAAI,UAAU,EAAE,CAAC;gBACf,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACrD,IAAI,OAAO;oBAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;YAClD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE;oBACX,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC3B;gBACD,UAAU,EAAE,IAAI;aACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE;oBACX,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC3B;gBACD,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,2BAA2B;aACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;SACzE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,OAAe,EAAE,OAAgB,EAAE,SAAgC,OAAO,CAAC,GAAG;IAClH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC;QAE7C,IAAA,wBAAQ,EAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAE/B,MAAM,IAAI,GAAG,IAAA,wBAAQ,EAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,OAAO;gBAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAA,wBAAQ,EAAC,kBAAkB,OAAO,GAAG,EAAE,IAAI,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,OAAO;gBAAE,MAAM,CAAC,6DAA6D,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO;YAAE,MAAM,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAc;IACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,mUAAmU,CAAC,CAAC;QACjV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,IAAI,UAA8B,CAAC;IACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7C,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QAChD,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAyB,CAAC;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9C,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;IACd,IAAI,OAA2B,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,IAAI,0BAA0B,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAClG,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,mCAAmC;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,YAAY;IACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,osCAAosC,CAAC,CAAC;QACltC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAe;QAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC3D,CAAC;IAEF,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,yBAAyB;IACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAExC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC,CAAC;YACvF,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,UAAU,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,6BAA6B;AAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/parsers/index.js
CHANGED
|
@@ -43,8 +43,12 @@ function parseTestOutput(output) {
|
|
|
43
43
|
for (const [, parse] of PARSERS) {
|
|
44
44
|
const results = parse(output);
|
|
45
45
|
if (results)
|
|
46
|
-
return results;
|
|
46
|
+
return allSkipped(results) ? { ...results, result: 'SKIPPED' } : results;
|
|
47
47
|
}
|
|
48
48
|
return null;
|
|
49
49
|
}
|
|
50
|
+
/** Tests were found, but none passed and none failed: every one was skipped. */
|
|
51
|
+
function allSkipped(r) {
|
|
52
|
+
return r.total > 0 && r.passed === 0 && r.failed === 0;
|
|
53
|
+
}
|
|
50
54
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAuCH,0CAMC;AA1CD,+BAAuC;AACvC,iCAAyC;AACzC,mCAA2C;AAC3C,qCAA6C;AAC7C,mCAA2C;AAG3C,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AACzB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AAEzB;;;;;;;;GAQG;AACH,MAAM,OAAO,GAA0F;IACrG,CAAC,WAAW,EAAE,wBAAgB,CAAC;IAC/B,CAAC,KAAK,EAAE,oBAAc,CAAC;IACvB,CAAC,OAAO,EAAE,wBAAgB,CAAC;IAC3B,CAAC,MAAM,EAAE,sBAAe,CAAC;IACzB,CAAC,QAAQ,EAAE,0BAAiB,CAAC;CAC9B,CAAC;AAEW,QAAA,iBAAiB,GAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAElF,iEAAiE;AACpD,QAAA,kBAAkB,GAAG,2CAA2C,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAE7G;;;GAGG;AACH,SAAgB,eAAe,CAAC,MAAc;IAC5C,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAuCH,0CAMC;AA1CD,+BAAuC;AACvC,iCAAyC;AACzC,mCAA2C;AAC3C,qCAA6C;AAC7C,mCAA2C;AAG3C,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AACzB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AAEzB;;;;;;;;GAQG;AACH,MAAM,OAAO,GAA0F;IACrG,CAAC,WAAW,EAAE,wBAAgB,CAAC;IAC/B,CAAC,KAAK,EAAE,oBAAc,CAAC;IACvB,CAAC,OAAO,EAAE,wBAAgB,CAAC;IAC3B,CAAC,MAAM,EAAE,sBAAe,CAAC;IACzB,CAAC,QAAQ,EAAE,0BAAiB,CAAC;CAC9B,CAAC;AAEW,QAAA,iBAAiB,GAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAElF,iEAAiE;AACpD,QAAA,kBAAkB,GAAG,2CAA2C,yBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAE7G;;;GAGG;AACH,SAAgB,eAAe,CAAC,MAAc;IAC5C,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,OAAO;YAAE,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,CAAc;IAChC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACzD,CAAC"}
|
package/dist/parsers/jest.d.ts
CHANGED
|
@@ -8,8 +8,10 @@ export interface TestResults {
|
|
|
8
8
|
passed: number;
|
|
9
9
|
failed: number;
|
|
10
10
|
skipped?: number;
|
|
11
|
-
result:
|
|
11
|
+
result: TestResult;
|
|
12
12
|
}
|
|
13
|
+
/** SKIPPED: tests were found, every one was skipped, so nothing passed or failed. */
|
|
14
|
+
export type TestResult = 'PASSED' | 'FAILED' | 'IMPROVED' | 'DEGRADED' | 'SKIPPED';
|
|
13
15
|
/**
|
|
14
16
|
* Parse Jest output to extract test results
|
|
15
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/parsers/jest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/parsers/jest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,qFAAqF;AACrF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAgElE;AAED;;;;;;;;;;;;;;GAcG"}
|
package/dist/parsers/jest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jest.js","sourceRoot":"","sources":["../../src/parsers/jest.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"jest.js","sourceRoot":"","sources":["../../src/parsers/jest.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAsBH,0CAgEC;AAzED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,MAAc;IAC5C,sDAAsD;IACtD,4CAA4C;IAC5C,IAAI,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACxD,yDAAyD;IACzD,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEtE,kCAAkC;IAClC,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;IACzD,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE5D,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAElC,yCAAyC;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,6EAA6E;IAC7E,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpD,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW;IACX,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAM,GAAe,QAAQ,CAAC;IAClC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IAED,OAAO;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC1C,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"junit.d.ts","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/parsers/junit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyCrC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"junit.d.ts","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/parsers/junit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAyCrC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAuDnE"}
|
package/dist/parsers/junit.js
CHANGED
|
@@ -92,6 +92,12 @@ function parseJunitOutput(output) {
|
|
|
92
92
|
}
|
|
93
93
|
if (counts.tests === 0)
|
|
94
94
|
return null;
|
|
95
|
+
// Some writers leave `skipped` off their counts (gotestsum's <testsuites> root
|
|
96
|
+
// has tests and failures only), which would count every skip as a pass. The
|
|
97
|
+
// <skipped> testcases are the truth then.
|
|
98
|
+
if (counts.skipped === 0) {
|
|
99
|
+
counts.skipped = Math.min(countsFromTestcases(xml).skipped, counts.tests - counts.failed);
|
|
100
|
+
}
|
|
95
101
|
const passed = Math.max(0, counts.tests - counts.failed - counts.skipped);
|
|
96
102
|
return {
|
|
97
103
|
total: counts.tests,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"junit.js","sourceRoot":"","sources":["../../src/parsers/junit.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAuDH,
|
|
1
|
+
{"version":3,"file":"junit.js","sourceRoot":"","sources":["../../src/parsers/junit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Push a receipt to the receipts branch, and try again when another run got
|
|
3
|
+
* there first.
|
|
4
|
+
*
|
|
5
|
+
* Two runs that finish close together both commit a receipt on top of the
|
|
6
|
+
* same branch tip; the second push is rejected (non-fast-forward). Before
|
|
7
|
+
* 2.4.3 that was a warning and the receipt was lost. Now the run fetches the
|
|
8
|
+
* branch again, resets to it, adds its receipt to the fresh .taf, and pushes,
|
|
9
|
+
* up to `attempts` times.
|
|
10
|
+
*
|
|
11
|
+
* Only for a dedicated receipts branch (`target-branch`): it holds nothing
|
|
12
|
+
* but .taf, so resetting to the remote throws away only this run's own
|
|
13
|
+
* rejected commit. Pushing to the current branch never resets.
|
|
14
|
+
*/
|
|
15
|
+
/** Runs git with these args in the repo; resolves to the exit code. */
|
|
16
|
+
export type Git = (args: string[]) => Promise<number>;
|
|
17
|
+
export interface PushResult {
|
|
18
|
+
pushed: boolean;
|
|
19
|
+
attempts: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function pushReceipt(git: Git, targetBranch: string, message: string, addReceipt: () => boolean, attempts?: number): Promise<PushResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/receipt-push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,uEAAuE;AACvE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,OAAO,EACzB,QAAQ,SAAI,GACX,OAAO,CAAC,UAAU,CAAC,CAarB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Push a receipt to the receipts branch, and try again when another run got
|
|
4
|
+
* there first.
|
|
5
|
+
*
|
|
6
|
+
* Two runs that finish close together both commit a receipt on top of the
|
|
7
|
+
* same branch tip; the second push is rejected (non-fast-forward). Before
|
|
8
|
+
* 2.4.3 that was a warning and the receipt was lost. Now the run fetches the
|
|
9
|
+
* branch again, resets to it, adds its receipt to the fresh .taf, and pushes,
|
|
10
|
+
* up to `attempts` times.
|
|
11
|
+
*
|
|
12
|
+
* Only for a dedicated receipts branch (`target-branch`): it holds nothing
|
|
13
|
+
* but .taf, so resetting to the remote throws away only this run's own
|
|
14
|
+
* rejected commit. Pushing to the current branch never resets.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.pushReceipt = pushReceipt;
|
|
18
|
+
async function pushReceipt(git, targetBranch, message, addReceipt, attempts = 5) {
|
|
19
|
+
for (let attempt = 1; attempt <= attempts; attempt++) {
|
|
20
|
+
if (attempt > 1) {
|
|
21
|
+
// Another run pushed first: start again from its receipts.
|
|
22
|
+
if ((await git(['fetch', 'origin', targetBranch])) !== 0) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
if ((await git(['reset', '--hard', `origin/${targetBranch}`])) !== 0) {
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
if (!addReceipt()) {
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if ((await git(['add', '.taf'])) !== 0) {
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
if ((await git(['commit', '-m', message])) !== 0) {
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
if ((await git(['push', 'origin', targetBranch])) === 0) {
|
|
39
|
+
return { pushed: true, attempts: attempt };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { pushed: false, attempts };
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=receipt-push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"receipt-push.js","sourceRoot":"","sources":["../src/receipt-push.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAUH,kCAmBC;AAnBM,KAAK,UAAU,WAAW,CAC/B,GAAQ,EACR,YAAoB,EACpB,OAAe,EACf,UAAyB,EACzB,QAAQ,GAAG,CAAC;IAEZ,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,2DAA2D;YAC3D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAA,MAAM;YAAA,CAAC;YAClE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,YAAY,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAA,MAAM;YAAA,CAAC;YAC9E,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBAAA,MAAM;YAAA,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAAA,MAAM;QAAA,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAAA,MAAM;QAAA,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAAA,CAAC;IACxG,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC"}
|
package/dist/taf-core.d.ts
CHANGED
|
@@ -10,3 +10,11 @@ import { TestResults } from './parsers/jest';
|
|
|
10
10
|
* Creates the file if it doesn't exist
|
|
11
11
|
*/
|
|
12
12
|
export declare function updateTafFile(tafPath: string, testResults: TestResults): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* What fired the run: GitHub Actions, another CI, or a local run
|
|
15
|
+
*/
|
|
16
|
+
export declare function runTrigger(env?: NodeJS.ProcessEnv): string;
|
|
17
|
+
/**
|
|
18
|
+
* The error when there is no .taf to append to, with the command that makes one
|
|
19
|
+
*/
|
|
20
|
+
export declare const NO_TAF_FILE = "No .taf file found. Create one: echo 'test_history: []' > .taf";
|
package/dist/taf-core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/taf-core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///Users/wolfejam/FAF/faf-taf-git/src/taf-core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAc,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAwBzD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,GACvB,OAAO,CAuCT;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAIvE;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,mEAAmE,CAAC"}
|
package/dist/taf-core.js
CHANGED
|
@@ -39,7 +39,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
39
39
|
};
|
|
40
40
|
})();
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.NO_TAF_FILE = void 0;
|
|
42
43
|
exports.updateTafFile = updateTafFile;
|
|
44
|
+
exports.runTrigger = runTrigger;
|
|
43
45
|
const fs = __importStar(require("fs"));
|
|
44
46
|
const yaml = __importStar(require("yaml"));
|
|
45
47
|
/**
|
|
@@ -69,7 +71,7 @@ function updateTafFile(tafPath, testResults) {
|
|
|
69
71
|
failed: testResults.failed,
|
|
70
72
|
skipped: testResults.skipped,
|
|
71
73
|
},
|
|
72
|
-
trigger:
|
|
74
|
+
trigger: runTrigger(),
|
|
73
75
|
};
|
|
74
76
|
// Append to history
|
|
75
77
|
taf.test_history.push(run);
|
|
@@ -83,6 +85,20 @@ function updateTafFile(tafPath, testResults) {
|
|
|
83
85
|
return false;
|
|
84
86
|
}
|
|
85
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* What fired the run: GitHub Actions, another CI, or a local run
|
|
90
|
+
*/
|
|
91
|
+
function runTrigger(env = process.env) {
|
|
92
|
+
if (env.GITHUB_ACTIONS === 'true')
|
|
93
|
+
return 'github-actions';
|
|
94
|
+
if (env.CI && env.CI !== 'false')
|
|
95
|
+
return 'ci';
|
|
96
|
+
return 'local';
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The error when there is no .taf to append to, with the command that makes one
|
|
100
|
+
*/
|
|
101
|
+
exports.NO_TAF_FILE = "No .taf file found. Create one: echo 'test_history: []' > .taf";
|
|
86
102
|
/**
|
|
87
103
|
* Create a new TAF file structure
|
|
88
104
|
*/
|
package/dist/taf-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taf-core.js","sourceRoot":"","sources":["../src/taf-core.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"taf-core.js","sourceRoot":"","sources":["../src/taf-core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/project.faf
CHANGED
|
@@ -29,8 +29,8 @@ human_context:
|
|
|
29
29
|
what: "A Test Receipt Printer for git. Every CI run prints a receipt to .taf: append-only, timestamped, kept in git. Proof over time."
|
|
30
30
|
why: Test results vanish when CI logs expire. Receipts stay in git, so anyone can look back and check whether main was green before a release.
|
|
31
31
|
where: https://github.com/Wolfe-Jam/faf-taf-git
|
|
32
|
-
when: v2.4.
|
|
33
|
-
how: "Run tests, save the output (or a JUnit XML report), then `uses: Wolfe-Jam/faf-taf-git@v2.4.
|
|
32
|
+
when: v2.4.4 (2026-11-01), SKIPPED result + honest badge count + true trigger; v2.4.3 (2026-10-31) push-race retry + JUnit skipped count; v2.4.2 undici security fix + CLI-only npm package; v2.4.1 --version fix; v2.4.0 (2026-10-29) JUnit XML parser; live since v1.0.0 (2025-10-27)
|
|
33
|
+
how: "Run tests, save the output (or a JUnit XML report), then `uses: Wolfe-Jam/faf-taf-git@v2.4.4` with `target-branch: taf-receipts`. Anywhere else: `npx faf-taf-git --file test-output.txt --commit`. The taf-receipts branch only grows: never rewrite it."
|
|
34
34
|
monorepo:
|
|
35
35
|
packages_count: slotignored
|
|
36
36
|
build_orchestrator: slotignored
|