Repository navigation
155 lines (128 loc) · 4.89 KB
/
Copy pathHarnesses.yml
File metadata and controls
155 lines (128 loc) · 4.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: Harnesses
# Generated inputs run against the library on every change to it. Each harness exits non-zero
# on a defect -- a value Simplify changed at a boundary, a root missing from a solution set, a
# wrong answer to a known problem -- and its report is uploaded either way. Sources/Tests/Harnesses/README.md
# says what each asks. https://github.com/asc-community/AngouriMath/issues/1256
#
# Path filters are globs relative to the repository root, with no leading "./": CSharpTest.yml
# says what a leading "./" once cost.
on:
push:
branches:
- master
paths:
- 'Sources/AngouriMath/**'
- 'Sources/Wrappers/AngouriMath.FSharp/**'
- 'Sources/Tests/Harnesses/**'
- '.github/workflows/Harnesses.yml'
pull_request:
paths:
- 'Sources/AngouriMath/**'
- 'Sources/Wrappers/AngouriMath.FSharp/**'
- 'Sources/Tests/Harnesses/**'
- '.github/workflows/Harnesses.yml'
workflow_dispatch:
jobs:
Harnesses:
runs-on: ubuntu-latest
env:
HARNESS_REPORTS: ${{ github.workspace }}/harness-reports
steps:
- uses: actions/checkout@v6
- name: Setup .NET 10
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.x'
dotnet-quality: 'preview'
- name: Build
run: |
dotnet build -c Release Sources/Tests/Harnesses/BoundCheck
dotnet build -c Release Sources/Tests/Harnesses/RootCheck
dotnet build -c Release Sources/Tests/Harnesses/CasBench
dotnet build -c Release Sources/Tests/Harnesses/PropCheck
dotnet build -c Release Sources/Tests/Harnesses/SimpSweep
dotnet build -c Release Sources/Tests/Harnesses/RuleCheck
dotnet build -c Release Sources/Tests/Harnesses/CanonCheck
dotnet build -c Release Sources/Tests/Harnesses/Confluence
# One step each, every one run whatever the one before did, so a red run names the harness.
- name: BoundCheck
run: dotnet Sources/Tests/Harnesses/BoundCheck/bin/Release/net10.0/boundcheck.dll
- name: RootCheck
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/RootCheck/bin/Release/net10.0/rootcheck.dll
- name: CasBench
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/CasBench/bin/Release/net10.0/casbench.dll
- name: PropCheck
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/PropCheck/bin/Release/net10.0/propcheck.dll
- name: SimpSweep
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/SimpSweep/bin/Release/net10.0/simpsweep.dll
- name: RuleCheck
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/RuleCheck/bin/Release/net10.0/rulecheck.dll
# These two report findings by design and fail when their committed list of them changes.
- name: CanonCheck
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/CanonCheck/bin/Release/net10.0/canoncheck.dll
- name: Confluence
if: success() || failure()
run: dotnet Sources/Tests/Harnesses/Confluence/bin/Release/net10.0/confluence.dll
- name: Reports
if: always()
uses: actions/upload-artifact@v6
with:
name: harness-reports
path: harness-reports
# A job of its own: one child process per case is minutes rather than seconds, and running it
# beside the others keeps them quick.
CrashCheck:
runs-on: ubuntu-latest
env:
HARNESS_REPORTS: ${{ github.workspace }}/harness-reports
steps:
- uses: actions/checkout@v6
- name: Setup .NET 10
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.x'
dotnet-quality: 'preview'
- name: Build
run: dotnet build -c Release Sources/Tests/Harnesses/CrashCheck
- name: CrashCheck
run: dotnet Sources/Tests/Harnesses/CrashCheck/bin/Release/net10.0/crashcheck.dll
- name: Report
if: always()
uses: actions/upload-artifact@v6
with:
name: crashcheck-report
path: harness-reports
# A job of its own: it checks the website out beside the library, clones the wiki, and builds a
# project per language from their samples.
DocSamples:
runs-on: ubuntu-latest
env:
HARNESS_REPORTS: ${{ github.workspace }}/harness-reports
steps:
- uses: actions/checkout@v6
- name: Check out the website
uses: actions/checkout@v6
with:
repository: asc-community/AngouriMathSite
path: site
- name: Setup .NET 10
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.x'
dotnet-quality: 'preview'
- name: Build
run: dotnet build -c Release Sources/Tests/Harnesses/DocSamples
- name: DocSamples
run: dotnet Sources/Tests/Harnesses/DocSamples/bin/Release/net10.0/docsamples.dll --site=site
- name: Report
if: always()
uses: actions/upload-artifact@v6
with:
name: docsamples-report
path: harness-reports