-
Notifications
You must be signed in to change notification settings - Fork 1
132 lines (108 loc) · 5.75 KB
/
dotnet-push.yml
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
name: Net RoutesList Dev
on:
push:
branches-ignore:
- master
jobs:
build-windows:
runs-on: windows-latest
strategy:
matrix:
configuration: [ Debug ]
dotnet-version: [ 'netcoreapp3.1', 'net5.0', 'net6.0', 'net7.0', 'net8.0' ]
steps:
- uses: actions/checkout@v4
- name: store cache packages
uses: actions/cache@v4
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-${{ github.workflow }}-${{ matrix.configuration }}-${{ matrix.dotnet-version }}-nuget-${{ hashFiles('**/packages.lock.json') }}
restore-keys: |
${{ runner.os }}-${{ github.workflow }}-${{ matrix.configuration }}-${{ matrix.dotnet-version }}-nuget-${{ hashFiles('**/packages.lock.json') }}
- name: Setup .NET Core SDK netcoreapp3.1
uses: actions/setup-dotnet@v4
with:
dotnet-version: 3.1.x
- name: Setup .NET Core SDK net5.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 5.0.x
- name: Setup .NET Core SDK net6.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
- name: Setup .NET Core SDK net7.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
- name: Setup .NET Core SDK net8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration ${{ matrix.configuration }} --no-restore
- name: Test
run: dotnet test --no-restore --verbosity minimal --configuration ${{ matrix.configuration }} -f ${{ matrix.dotnet-version }}
build-linux:
runs-on: ubuntu-latest
strategy:
matrix:
configuration: [ Debug ]
dotnet-version: [ 'netcoreapp3.1', 'net5.0', 'net6.0', 'net7.0', 'net8.0' ]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-${{ github.workflow }}-${{ matrix.configuration }}-${{ matrix.dotnet-version }}-nuget-${{ hashFiles('**/packages.lock.json') }}
restore-keys: |
${{ runner.os }}-${{ github.workflow }}-${{ matrix.configuration }}-${{ matrix.dotnet-version }}-nuget-${{ hashFiles('**/packages.lock.json') }}
- name: Setup .NET Core SDK netcoreapp3.1
uses: actions/setup-dotnet@v4
with:
dotnet-version: 3.1.x
- name: Setup .NET Core SDK net5.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 5.0.x
- name: Setup .NET Core SDK net6.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
- name: Setup .NET Core SDK net7.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
- name: Setup .NET Core SDK net8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration ${{ matrix.configuration }} --no-restore
- name: Test
run: dotnet test --no-restore --verbosity minimal --configuration ${{ matrix.configuration }} -f ${{ matrix.dotnet-version }} --collect "XPlat Code Coverage"
- name: Rename and move Cobertura test to ${{ github.workspace }}/coverage directory
if: ${{ matrix.dotnet-version == 'net8.0' }}
run: |
mkdir -p ${{ github.workspace }}/coverage
cp ${{ github.workspace }}/tests/UnitTests/TestResults/**/coverage.cobertura.xml ${{ github.workspace }}/coverage/coverage1.xml
cp ${{ github.workspace }}/tests/Test.WebApplication.factory/TestResults/**/coverage.cobertura.xml ${{ github.workspace }}/coverage/coverage2.xml
cp ${{ github.workspace }}/tests/RouteList.IntegrationTest/TestResults/**/coverage.cobertura.xml ${{ github.workspace }}/coverage/coverage3.xml
cp ${{ github.workspace }}/tests/RoutesList.Integration.Razor/TestResults/**/coverage.cobertura.xml ${{ github.workspace }}/coverage/coverage4.xml
cp ${{ github.workspace }}/tests/RoutesLIst.Integration.Blazor/TestResults/**/coverage.cobertura.xml ${{ github.workspace }}/coverage/coverage5.xml
ls ${{ github.workspace }}/coverage
- name: Send coverage reports to Codacy
if: ${{ matrix.dotnet-version == 'net8.0' }}
run: |
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r ${{ github.workspace }}/coverage/coverage1.xml -t ${{ secrets.CODACY_PROJECT_SECRET }} --partial --language CSharp --force-coverage-parser Cobertura
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r ${{ github.workspace }}/coverage/coverage2.xml -t ${{ secrets.CODACY_PROJECT_SECRET }} --partial --language CSharp --force-coverage-parser Cobertura
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r ${{ github.workspace }}/coverage/coverage3.xml -t ${{ secrets.CODACY_PROJECT_SECRET }} --partial --language CSharp --force-coverage-parser Cobertura
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r ${{ github.workspace }}/coverage/coverage4.xml -t ${{ secrets.CODACY_PROJECT_SECRET }} --partial --language CSharp --force-coverage-parser Cobertura
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r ${{ github.workspace }}/coverage/coverage5.xml -t ${{ secrets.CODACY_PROJECT_SECRET }} --partial --language CSharp --force-coverage-parser Cobertura
- name: Finalize codacy reporter
if: ${{ matrix.dotnet-version == 'net8.0' }}
run: bash <(curl -Ls https://coverage.codacy.com/get.sh) final -t ${{ secrets.CODACY_PROJECT_SECRET }}