2828 - ' *'
2929
3030jobs :
31- ubuntu-latest :
32- name : ubuntu-latest
33- runs-on : ubuntu-22.04 # 24.04 can't run < net6.0
31+ build-and-test :
32+ strategy :
33+ matrix :
34+ include :
35+ - os : windows
36+ vm : windows-latest
37+ - os : linux
38+ vm : ubuntu-latest
39+ - os : macos
40+ vm : macos-13 # latest is arm64, and it breaks a bunch of stuff
41+ env :
42+ MSBuildEnableWorkloadResolver : false
43+ DOTNET_SYSTEM_GLOBALIZATION_INVARIANT : " true"
44+ name : ${{ matrix.os}}
45+ runs-on : ${{ matrix.vm}}
3446 steps :
3547 - uses : actions/checkout@v4
3648 - uses : actions/setup-dotnet@v4
@@ -40,87 +52,51 @@ jobs:
4052 8.0.x
4153 7.0.x
4254 6.0.x
43- 5.0.x
4455 3.1.x
56+
4557 - name : Cache .nuke/temp, ~/.nuget/packages
46- uses : actions/cache@v2
58+ uses : actions/cache@v3
4759 with :
4860 path : |
4961 .nuke/temp
5062 ~/.nuget/packages
5163 !~/.nuget/packages/stronglytypeid
5264 key : ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
65+
5366 - name : Run './build.cmd Clean Test TestPackages PushToNuGet'
5467 run : ./build.cmd Clean Test TestPackages PushToNuGet
5568 env :
56- GithubToken : ${{ secrets.GITHUB_TOKEN }}
57- NuGetToken : ${{ secrets.NUGET_TOKEN }}
58- MSBuildEnableWorkloadResolver : false
69+ NuGetToken : ${{ secrets.NUGET_TOKEN || 'NOT_SET'}}
70+
5971 - uses : actions/upload-artifact@v4
6072 with :
61- name : artifacts-linux
62- path : artifacts
63- windows-latest :
64- name : windows-latest
65- runs-on : windows-latest
66- steps :
67- - uses : actions/checkout@v4
68- - uses : actions/setup-dotnet@v4
69- with :
70- dotnet-version : |
71- 9.0.x
72- 8.0.x
73- 7.0.x
74- 6.0.x
75- 5.0.x
76- 3.1.x
77- - name : Cache .nuke/temp, ~/.nuget/packages
78- uses : actions/cache@v2
79- with :
80- path : |
81- .nuke/temp
82- ~/.nuget/packages
83- !~/.nuget/packages/stronglytypeid
84- key : ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
85- - name : Run './build.cmd Clean Test TestPackages PushToNuGet'
86- run : ./build.cmd Clean Test TestPackages PushToNuGet
87- env :
88- GithubToken : ${{ secrets.GITHUB_TOKEN }}
89- NuGetToken : ${{ secrets.NUGET_TOKEN }}
90- MSBuildEnableWorkloadResolver : false
73+ name : packages-${{ matrix.os}}
74+ path : artifacts/packages
9175 - uses : actions/upload-artifact@v4
9276 with :
93- name : artifacts-windows
94- path : artifacts
95- macOS-latest :
96- name : macos-13 # latest is arm64, and it breaks a bunch of stuff
97- runs-on : macos-13 # latest is arm64, and it breaks a bunch of stuff
77+ name : results-${{ matrix.os}}
78+ path : artifacts/results
79+
80+ publish-test-results :
81+ name : " Publish Tests Results"
82+ needs : build-and-test
83+ runs-on : ubuntu-latest
84+ permissions :
85+ checks : write
86+ pull-requests : write # needed unless run with comment_mode: off
87+ # contents: read # only needed for private repository
88+ # issues: read # only needed for private repository
89+ if : always()
90+
9891 steps :
99- - uses : actions/checkout@v4
100- - uses : actions/setup-dotnet@v4
101- with :
102- dotnet-version : |
103- 9.0.x
104- 8.0.x
105- 7.0.x
106- 6.0.x
107- 5.0.x
108- 3.1.x
109- - name : Cache .nuke/temp, ~/.nuget/packages
110- uses : actions/cache@v2
92+ - name : Download Artifacts
93+ uses : actions/download-artifact@v4
11194 with :
112- path : |
113- .nuke/temp
114- ~/.nuget/packages
115- !~/.nuget/packages/stronglytypeid
116- key : ${{ runner.os }}-${{ hashFiles('**/global.json', '**/*.csproj') }}
117- - name : Run './build.cmd Clean Test TestPackages PushToNuGet'
118- run : ./build.cmd Clean Test TestPackages PushToNuGet
119- env :
120- GithubToken : ${{ secrets.GITHUB_TOKEN }}
121- NuGetToken : ${{ secrets.NUGET_TOKEN }}
122- MSBuildEnableWorkloadResolver : false
123- - uses : actions/upload-artifact@v4
95+ path : artifacts/results
96+
97+ - name : Publish Test Results
98+ uses : EnricoMi/publish-unit-test-result-action@v2
12499 with :
125- name : artifacts-macos
126- path : artifacts
100+ files : " artifacts/**/*.trx"
101+ json_thousands_separator : " ,"
102+ check_run_annotations_branch : " *"
0 commit comments