1+ name : CI
2+
3+ on :
4+ workflow_dispatch :
5+ push :
6+ branches :
7+ - master
8+ pull_request :
9+ types : [opened, synchronize, reopened]
10+ release :
11+ types :
12+ - created
13+
14+ jobs :
15+ package :
16+ # build, test, and deploy the core package on Linux
17+ name : Package
18+ runs-on : ubuntu-latest
19+ env :
20+ CSPROJ_CORE : src/Spectrogram/Spectrogram.csproj
21+ CSPROJ_TESTS : src/Spectrogram.Tests/Spectrogram.Tests.csproj
22+ steps :
23+ - name : 🛒 Checkout
24+ uses : actions/checkout@v2
25+ - name : ✨ Setup .NET 6
26+ uses : actions/setup-dotnet@v1
27+ with :
28+ dotnet-version : " 6.0.x"
29+ include-prerelease : true
30+ - name : 🚚 Restore
31+ run : |
32+ dotnet restore ${{ env.CSPROJ_CORE }}
33+ dotnet restore ${{ env.CSPROJ_TESTS }}
34+ - name : 🛠️ Build
35+ run : |
36+ dotnet build ${{ env.CSPROJ_CORE }} --configuration Release
37+ dotnet build ${{ env.CSPROJ_TESTS }}
38+ - name : 🧪 Test
39+ run : dotnet test ${{ env.CSPROJ_TESTS }}
40+ - name : 📦 Pack
41+ run : dotnet pack ${{ env.CSPROJ_CORE }} --configuration Release
42+ - name : 💾 Store
43+ uses : actions/upload-artifact@v2
44+ with :
45+ name : Packages
46+ retention-days : 1
47+ path : src/Spectrogram/bin/Release/*.nupkg
48+ - name : 🛠️ Setup NuGet
49+ if : github.event_name == 'release'
50+ uses : nuget/setup-nuget@v1
51+ with :
52+ nuget-api-key : ${{ secrets.NUGET_API_KEY }}
53+ - name : 🚀 Publish
54+ if : github.event_name == 'release'
55+ run : nuget push "src/Spectrogram/bin/Release/*.nupkg" -SkipDuplicate -Source https://api.nuget.org/v3/index.json
56+
57+ solution :
58+ # build the whole solution (.NET Framework demos require Windows/MSBuild)
59+ name : Build Solution
60+ runs-on : windows-latest
61+ steps :
62+ - name : 🛒 Checkout
63+ uses : actions/checkout@v1
64+ - name : ✨ Setup NuGet
65+ uses : nuget/setup-nuget@v1
66+ - name : ✨ Setup MSBuild
67+ uses : microsoft/setup-msbuild@v1.0.3
68+ - name : 🚚 Restore
69+ working-directory : src
70+ run : nuget restore
71+ - name : 🛠️ Build Release
72+ run : msbuild src -verbosity:minimal
0 commit comments