Bump Microsoft.NET.Test.Sdk from 17.10.0 to 17.11.0 in /src #737
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: Build | |
on: | |
push: | |
tags: v[1-9]+.[0-9]+.[0-9]+ | |
branches: [ master ] | |
pull_request: | |
jobs: | |
build: | |
runs-on: windows-latest | |
env: | |
DOTNET_NOLOGO: true | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Fetch all history for all tags and branches | |
run: git fetch --prune --unshallow | |
- name: Cache nuget packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.nuget/packages | |
key: nuget-${{ hashFiles('**/packages.lock.json') }} | |
restore-keys: | | |
nuget- | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: '8.0.x' | |
- name: Install GitVersion | |
uses: gittools/actions/gitversion/setup@v1.1.1 | |
with: | |
versionSpec: '5.x' | |
- name: Check GitVersion | |
id: gitversion # step id used as reference for output values | |
uses: gittools/actions/gitversion/execute@v1.1.1 | |
- name: Echo version | |
run: echo ${{ steps.gitversion.outputs.nuGetVersionV2 }} | |
- name: Build | |
id: build | |
run: | | |
dotnet build src --configuration Release | |
echo "release_folder=./src/NVika/bin/Release/net8.0" >> $env:GITHUB_OUTPUT | |
- name: Test | |
run: dotnet test src --configuration Release --no-build --nologo --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover | |
- name: InspectCode Analysis - old xml | |
run: | | |
nuget install JetBrains.ReSharper.CommandLineTools -ExcludeVersion -OutputDirectory tools | |
./tools/JetBrains.ReSharper.CommandLineTools/tools/inspectcode -o="inspectcodereport.xml" --project="NVika" "src\Vika.sln" -f=xml | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: inspectcodereport.xml | |
name: inspectcodereport.xml | |
- name: InspectCode Analysis | |
run: | | |
nuget install JetBrains.ReSharper.CommandLineTools -ExcludeVersion -OutputDirectory tools | |
./tools/JetBrains.ReSharper.CommandLineTools/tools/inspectcode -o="inspectcodereport.json" --project="NVika" "src\Vika.sln" | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: inspectcodereport.json | |
name: inspectcodereport.json | |
- name: LaunchNVika | |
run: ${{ steps.build.outputs.release_folder }}/NVika.exe --debug --includesource inspectcodereport.xml inspectcodereport.json ${{ steps.build.outputs.release_folder }}/static-analysis.sarif.json | |
- name: Create Nuget package | |
run: dotnet pack src --configuration Release --nologo --no-build /p:Version=${{ steps.gitversion.outputs.nuGetVersionV2 }} | |
- name: Create MSBuild package | |
run: | | |
Copy-Item -Path resources/icon.png -Destination src\NVika.MSBuild\ | |
mkdir src\NVika.MSBuild\tools\ | |
Copy-Item -Path "${{ steps.build.outputs.release_folder }}/publish/*" -Destination src\NVika.MSBuild\tools\ | |
nuget pack src/NVika.MSBuild/NVika.MSBuild.nuspec -Version ${{ steps.gitversion.outputs.nuGetVersionV2 }} -OutputDirectory artifacts/nuget | |
- name: Create netcore packages | |
run: | | |
mkdir ./artifacts/zips | |
Compress-Archive -Path ${{ steps.build.outputs.release_folder }}/publish/* -DestinationPath "artifacts/zips/NVika.netcore.${{ steps.gitversion.outputs.nuGetVersionV2 }}.zip" | |
Copy-Item -Path "src/NVika/bin/Release/NVika.${{ steps.gitversion.outputs.nuGetVersionV2 }}.nupkg" -Destination artifacts/nuget | |
- name: Create windows version | |
run: | | |
dotnet publish src/NVika --configuration Release --output ./publish --runtime win-x64 -p:PublishAot=true -p:PublishTrimmed=true /p:PackAsTool=false /p:Version=${{ steps.gitversion.outputs.nuGetVersionV2 }} | |
Compress-Archive -Path publish/* -DestinationPath "artifacts/zips/NVika.win-x64.${{ steps.gitversion.outputs.nuGetVersionV2 }}.zip" | |
- name: Create chocolatey version | |
run: | | |
$winVersionChecksum = (Get-FileHash "artifacts/zips/NVika.win-x64.${{ steps.gitversion.outputs.nuGetVersionV2 }}.zip" -Algorithm SHA256).Hash | |
mkdir ./artifacts/chocolatey | |
$installPath = "chocolatey/tools/chocolateyInstall.ps1" | |
$originalContent = Get-Content $installPath | |
$originalContent.replace('[version]', "${{ steps.gitversion.outputs.nuGetVersionV2 }}").replace('[checksum]', $winVersionChecksum) | Set-Content $installPath | |
choco pack chocolatey/nvika.nuspec --version ${{ steps.gitversion.outputs.nuGetVersionV2 }} --outdir artifacts/chocolatey | |
Set-Content $installPath $originalContent | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: artifacts/* | |
release: | |
if: startsWith(github.ref, 'refs/tags/v') | |
needs: [build] | |
runs-on: windows-latest | |
env: | |
DOTNET_NOLOGO: true | |
DOTNET_CLI_TELEMETRY_OPTOUT: true | |
steps: | |
- uses: actions/download-artifact@v4 | |
name: artifact | |
- name: Display structure of downloaded files | |
run: ls -R | |
- name: Get the version | |
id: get_version | |
run: | | |
$version = $env:GITHUB_REF.Replace('refs/tags/v', '') | |
echo "::set-output name=VERSION::$version" | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
body: ${{ env.SemanticReleaseNotes }} | |
draft: false | |
prerelease: false | |
- name: Upload Zip netcore | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./artifact/zips/NVika.netcore.${{ steps.get_version.outputs.version }}.zip | |
asset_name: NVika.netcore.${{ steps.get_version.outputs.version }}.zip | |
asset_content_type: application/zip | |
- name: Upload Zip win-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./artifact/zips/NVika.win-x64.${{ steps.get_version.outputs.version }}.zip | |
asset_name: NVika.win-x64.${{ steps.get_version.outputs.version }}.zip | |
asset_content_type: application/zip | |
- name: Chocolatey push | |
run: choco push artifact/chocolatey/nvika.${{ steps.get_version.outputs.version }}.nupkg --source=https://push.chocolatey.org/ --api-key=$env:CHOCO_API_KEY | |
env: | |
CHOCO_API_KEY: ${{ secrets.CHOCO_API_KEY }} | |
- name: Nuget push Tool | |
run: dotnet nuget push artifact/nuget/NVika.${{ steps.get_version.outputs.version }}.nupkg -s https://api.nuget.org/v3/index.json -k $env:NUGET_API_KEY | |
env: | |
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} | |
- name: Nuget push MSBuild | |
run: dotnet nuget push artifact/nuget/NVika.MSBuild.${{ steps.get_version.outputs.version }}.nupkg -s https://api.nuget.org/v3/index.json -k $env:NUGET_API_KEY | |
env: | |
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} |