-
Notifications
You must be signed in to change notification settings - Fork 8
150 lines (126 loc) · 5.29 KB
/
Copy pathdotnet.yml
File metadata and controls
150 lines (126 loc) · 5.29 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
name: .NET
on:
workflow_dispatch:
pull_request:
branches:
- 'main'
- 'develop'
- 'release/**'
- 'hotfix/**'
push:
branches:
- 'main'
- 'develop'
- 'release/**'
- 'hotfix/**'
permissions:
contents: read
env:
BUILD_CONFIGURATION: "Release"
SOLUTION_PATH: source/AAS.TwinEngine.DataEngine.sln
TEST_PROJECT: source/AAS.TwinEngine.DataEngine.UnitTests/AAS.TwinEngine.DataEngine.UnitTests.csproj
MODULE_TEST_PROJECT: source/AAS.TwinEngine.DataEngine.ModuleTests/AAS.TwinEngine.DataEngine.ModuleTests.csproj
jobs:
build-test:
name: Build & Test
runs-on: ubuntu-latest
permissions:
contents: read
checks: write
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: "8.0.x"
- name: Restore
run: dotnet restore ${{ env.SOLUTION_PATH }} --locked-mode
- name: Build
run: dotnet build ${{ env.SOLUTION_PATH }} --configuration ${{ env.BUILD_CONFIGURATION }} --no-restore
- name: Run Unit Tests
run: dotnet test ${{ env.TEST_PROJECT }} --configuration Release --no-build --logger "trx;LogFileName=unit_test_results.trx" --collect:"XPlat Code Coverage" --settings source/coverlet.runsettings
- name: Run Module Tests
run: dotnet test ${{ env.MODULE_TEST_PROJECT }} --configuration Release --no-build --logger "trx;LogFileName=module_test_results.trx" --collect:"XPlat Code Coverage" --settings source/coverlet.runsettings
- name: Publish Test Results
uses: dorny/test-reporter@a43b3a5f7366b97d083190328d2c652e1a8b6aa2 # v3.0.0
id: test-results
if: github.event.pull_request.head.repo.fork == false
with:
name: Test Results (Unit & Module)
path: "**/*_test_results.trx"
reporter: dotnet-trx
- name: Combine Reports (Test Results)
if: github.event.pull_request.head.repo.fork == false
run: |
echo "# Test & Coverage Report" > results.md
echo "" >> results.md
echo "## Test Results Summary" >> results.md
echo "" >> results.md
echo "| Metric | Count |" >> results.md
echo "|--------|-------|" >> results.md
echo "| ✅ Passed | ${{ steps.test-results.outputs.passed }} |" >> results.md
echo "| ❌ Failed | ${{ steps.test-results.outputs.failed }} |" >> results.md
echo "| ⏭️ Skipped | ${{ steps.test-results.outputs.skipped }} |" >> results.md
echo "" >> results.md
echo "[View Detailed Test Results](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})" >> results.md
echo "" >> results.md
echo "---" >> results.md
echo "" >> results.md
- name: Code Coverage Report - Unit Tests
if: github.event.pull_request.head.repo.fork == false
uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0
with:
filename: "source/AAS.TwinEngine.DataEngine.UnitTests/TestResults/*/coverage.cobertura.xml"
badge: false
fail_below_min: true
format: markdown
hide_branch_rate: false
hide_complexity: false
indicators: true
output: both
thresholds: "80 80"
- name: Combine Reports (Unit Test Coverage Results)
if: github.event.pull_request.head.repo.fork == false
run: |
echo "## Code Coverage" >> results.md
echo "" >> results.md
echo "### Unit Tests Coverage" >> results.md
cat code-coverage-results.md >> results.md
echo "" >> results.md
- name: Code Coverage Report - Module Tests
if: github.event.pull_request.head.repo.fork == false
uses: irongut/CodeCoverageSummary@51cc3a756ddcd398d447c044c02cb6aa83fdae95 # v1.3.0
with:
filename: "source/AAS.TwinEngine.DataEngine.ModuleTests/TestResults/*/coverage.cobertura.xml"
badge: false
fail_below_min: false
format: markdown
hide_branch_rate: false
hide_complexity: false
indicators: true
output: both
- name: Combine Reports (Module Test Coverage Results)
if: github.event.pull_request.head.repo.fork == false
run: |
echo "### Module Tests Coverage" >> results.md
cat code-coverage-results.md >> results.md
- name: Add PR Comment
if: github.event.pull_request.head.repo.fork == false
uses: marocchino/sticky-pull-request-comment@0ea0beb66eb9baf113663a64ec522f60e49231c0 # v3.0.4
with:
recreate: true
path: results.md
- name: Upload TRX as artifact
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dotnet-test-results
path: "**/*_test_results.trx"
- name: Upload Code Coverage as artifact
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: dotnet-code-coverage
path: "**/coverage.cobertura.xml"