Refactor source generation template, improve performance and update benchmarks #303
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [ main, release/v** ] | |
| paths-ignore: | |
| - 'README.md' | |
| - 'LICENSE' | |
| - 'img/**' | |
| - 'benchmarks/**' | |
| - 'samples/**' | |
| - '*.sln' | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| lifetime: [Singleton, Scoped, Transient] | |
| publisher: [ForeachAwait, TaskWhenAll] | |
| size: [Default, Large] | |
| env: | |
| NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| fetch-depth: 0 # depth is needed for nbgv | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: '8.0.x' | |
| include-prerelease: false | |
| - uses: dotnet/nbgv@master | |
| with: | |
| setAllVars: true | |
| - uses: actions/cache@v3 | |
| with: | |
| path: ${{ github.workspace }}/.nuget/packages | |
| key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/Directory.*.props', 'NuGet.config') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nuget- | |
| - name: Restore dependencies | |
| run: dotnet restore | |
| - name: Clean | |
| run: dotnet clean -v m | |
| - name: Build Mediator.Tests | |
| run: dotnet build --no-restore -p:ExtraDefineConstants=\"Mediator_Lifetime_${{ matrix.lifetime }}%3BMediator_Publisher_${{ matrix.publisher }}%3BMediator_${{matrix.size}}_Project\" -v m ./test/Mediator.Tests/ | |
| - name: Test Mediator.Tests | |
| run: dotnet test --no-restore --no-build --logger "console;verbosity=detailed" ./test/Mediator.Tests/ | |
| publish: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| env: | |
| NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| fetch-depth: 0 # depth is needed for nbgv | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: '8.0.x' | |
| include-prerelease: false | |
| - uses: dotnet/nbgv@master | |
| with: | |
| setAllVars: true | |
| - uses: actions/cache@v3 | |
| with: | |
| path: ${{ github.workspace }}/.nuget/packages | |
| key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', '**/Directory.*.props', 'NuGet.config') }} | |
| restore-keys: | | |
| ${{ runner.os }}-nuget- | |
| - name: Restore dependencies | |
| run: dotnet restore | |
| - name: Clean | |
| run: dotnet clean -v m | |
| - name: Build | |
| run: dotnet build --no-restore -c Release | |
| - name: Test | |
| run: dotnet test --no-restore --no-build -c Release --logger "console;verbosity=detailed" | |
| - name: Pack | |
| run: | | |
| dotnet pack src/Mediator/Mediator.csproj --no-restore --no-build --verbosity normal -c Release -o artifacts/ && \ | |
| dotnet pack src/Mediator.SourceGenerator/Mediator.SourceGenerator.csproj --no-restore --no-build --verbosity normal -c Release -o artifacts/ | |
| - name: Push to NuGet | |
| if: ${{ success() && github.event_name != 'pull_request' }} | |
| run: dotnet nuget push artifacts/**.nupkg -s https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_API_KEY}} |