Update all microsoft dependencies #14
Workflow file for this run
This file contains 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: .NET Core | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
types: [opened, synchronize, reopened, closed] | |
branches: [ main ] | |
jobs: | |
build: | |
runs-on: windows-2022 | |
outputs: | |
nbgv: ${{ steps.nbgv.outputs.SemVer2 }} | |
env: | |
DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
DOTNET_NOLOGO: true | |
DOTNET_GENERATE_ASPNET_CERTIFICATE: false | |
solutionpath: src\Vetuviem.sln | |
unittestprojectpath: src\Vetuviem.UnitTests\Vetuviem.UnitTests.csproj | |
steps: | |
- name: Get Latest Visual Studio Version | |
shell: bash | |
run: | | |
dotnet tool update -g dotnet-vs | |
vs where release | |
vs update release Enterprise | |
vs modify release Enterprise +mobile +desktop +uwp +web | |
vs where release | |
- name: Checkout code | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
fetch-depth: 0 | |
#- name: Setup .NET Core 3.1 | |
# uses: actions/setup-dotnet@v3 | |
# with: | |
# dotnet-version: 3.1.x | |
#- name: Setup .NET 5 | |
# uses: actions/setup-dotnet@v3 | |
# with: | |
# dotnet-version: 5.0.x | |
- name: Setup .NET 7 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 7.0.x | |
- name: Install DotNet workloads | |
shell: bash | |
run: | | |
dotnet workload install android ios tvos macos maui wasm-tools | |
dotnet workload list | |
- name: Install Windows SDK 10.0.16299 | |
shell: pwsh | |
run: | | |
Invoke-WebRequest -Uri https://go.microsoft.com/fwlink/p/?linkid=864422 -OutFile winsdk.exe | |
$startInfo = New-Object System.Diagnostics.ProcessStartInfo | |
$startInfo.FileName = "winsdk.exe" | |
$startInfo.Arguments = "/norestart /quiet" | |
$process = New-Object System.Diagnostics.Process | |
$process.StartInfo = $startInfo | |
$process.Start() | |
$process.WaitForExit() | |
- name: NBGV | |
id: nbgv | |
uses: dotnet/nbgv@master | |
with: | |
setAllVars: true | |
- name: Install dotnet tools | |
run: | | |
dotnet tool install --global dotMorten.OmdGenerator | |
dotnet tool install --global ConfigValidate | |
dotnet tool install --global dotnet-outdated-tool | |
dotnet tool install --global snitch | |
dotnet tool install --global dotnet-sonarscanner | |
dotnet tool install --global JetBrains.ReSharper.GlobalTools --version 2021.2.2 | |
- name: Prepare Artifact Directory | |
run: | | |
mkdir artifacts | |
mkdir artifacts\nupkg | |
mkdir artifacts\outdated | |
mkdir artifacts\snitch | |
mkdir artifacts\omd | |
mkdir artifacts\docfx | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
- name: Restore Packages | |
run: | | |
dotnet restore ${{ env.solutionpath }} /bl:artifacts\\binlog\\restore.binlog | |
# msbuild used because we run targets not supported by dotnet build | |
- name: Run Build | |
run: | | |
msbuild /t:build /nowarn:MSB4011 /maxcpucount /p:NoPackageAnalysis=true /verbosity:minimal /p:Configuration=Release | |
working-directory: src | |
- name: Run Unit Tests | |
run: | | |
dotnet test ${{ env.unittestprojectpath }} --configuration Release --no-build /bl:artifacts\\binlog\\unittest.binlog --nologo --logger GitHubActions --blame-hang-timeout 60000 --results-directory artifacts\opencover --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=opencover | |
- name: Upload Code Coverage | |
shell: bash | |
run: | | |
echo $PWD | |
bash <(curl -s https://codecov.io/bash) -X gcov -X coveragepy -t ${{ env.CODECOV_TOKEN }} -s '$PWD/artifacts/opencover' -f '*.xml' | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
- name: Produce Nuget Packages | |
run: msbuild /t:pack /nowarn:MSB4011 /maxcpucount /p:NoPackageAnalysis=true /verbosity:minimal /p:Configuration=Release /p:PackageOutputPath=..\..\artifacts\nuget /p:ContinuousIntegrationBuild=true | |
working-directory: src | |
- name: List outdated packages | |
run: | | |
dotnet outdated -o artifacts\outdated\outdated.json src | |
- name: Run Resharper Duplicate Code Finder | |
run: | | |
jb dupfinder ${{ env.solutionpath }} -o=artifacts\dupfinder\report.xml | |
# only store binlog on failure | |
- name: store binlogs | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: binlogs | |
path: artifacts/binlog | |
- name: store docfx | |
uses: actions/upload-artifact@v3 | |
with: | |
name: docfx | |
path: artifacts/docfx | |
- name: store nuget packages | |
uses: actions/upload-artifact@v3 | |
with: | |
name: nuget | |
path: artifacts/nuget/vetuviem.*.nupkg | |
- name: store omd | |
uses: actions/upload-artifact@v3 | |
with: | |
name: omd | |
path: artifacts/omd | |
- name: store outdated | |
uses: actions/upload-artifact@v3 | |
with: | |
name: outdated | |
path: artifacts/outdated | |
- name: store snitch | |
uses: actions/upload-artifact@v3 | |
with: | |
name: snitch | |
path: artifacts/snitch | |
- name: store resharper dupfinder | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dupfinder | |
path: artifacts/dupfinder | |
release: | |
runs-on: ubuntu-latest | |
needs: build | |
if: contains(github.event.pull_request.labels.*.name, 'release') && github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true | |
env: | |
DOTNET_CLI_TELEMETRY_OPTOUT: 1 | |
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 | |
DOTNET_NOLOGO: true | |
DOTNET_GENERATE_ASPNET_CERTIFICATE: false | |
steps: | |
- name: Checkout | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4 | |
with: | |
fetch-depth: 0 | |
- name: Download NuGet Packages | |
uses: actions/download-artifact@v3 | |
with: | |
name: nuget | |
- name: Changelog | |
uses: glennawatson/ChangeLog@v1 | |
id: changelog | |
- name: Create Release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
tag_name: ${{ needs.build.outputs.nbgv }} | |
release_name: ${{ needs.build.outputs.nbgv }} | |
body: | | |
${{ steps.changelog.outputs.commitLog }} | |
- name: NuGet Push | |
env: | |
NUGET_AUTH_TOKEN: ${{ secrets.NUGET_API_KEY }} | |
SOURCE_URL: https://api.nuget.org/v3/index.json | |
run: | | |
dotnet nuget push -s ${{ env.SOURCE_URL }} -k ${{ env.NUGET_AUTH_TOKEN }} **/*.nupkg |