mirror of
https://github.com/actions/setup-dotnet.git
synced 2025-08-20 15:40:20 +00:00
SxS testing in the dotnet project
This commit is contained in:
parent
2af72a5efd
commit
990d674c69
20
.github/workflows/workflow.yml
vendored
20
.github/workflows/workflow.yml
vendored
@ -56,13 +56,17 @@ jobs:
|
|||||||
echo $env:PATH
|
echo $env:PATH
|
||||||
dotnet --info
|
dotnet --info
|
||||||
Remove-Item $env:LocalAppData\Microsoft\dotnet/* -Recurse -Force -ErrorAction SilentlyContinue
|
Remove-Item $env:LocalAppData\Microsoft\dotnet/* -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
- name: Setup dotnet 2.2.402
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
dotnet-version: 2.2.402
|
||||||
- name: Setup dotnet 3.1.201
|
- name: Setup dotnet 3.1.201
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
dotnet-version: 3.1.201
|
dotnet-version: 3.1.201
|
||||||
- name: Verify dotnet
|
- name: Verify dotnet
|
||||||
if: runner.os != 'windows'
|
if: runner.os != 'windows'
|
||||||
run: __tests__/verify-dotnet.sh 3.1.201
|
run: __tests__/verify-dotnet.sh 3.1.201 2.2.402
|
||||||
- name: Verify dotnet (Windows)
|
- name: Verify dotnet (Windows)
|
||||||
if: runner.os == 'windows'
|
if: runner.os == 'windows'
|
||||||
run: __tests__/verify-dotnet.ps1 3.1.201
|
run: __tests__/verify-dotnet.ps1 3.1.201
|
||||||
@ -89,12 +93,13 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
apt update
|
apt update
|
||||||
apt -y install curl
|
apt -y install curl
|
||||||
- name: Setup dotnet 3.1.201
|
# 2.2 uses nuget to download the JSON nuget package, the package is built into 3.1
|
||||||
|
- name: Setup dotnet 2.2.402
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
dotnet-version: 3.1.201
|
dotnet-version: 2.2.402
|
||||||
- name: Verify dotnet
|
- name: Verify dotnet
|
||||||
run: __tests__/verify-dotnet.sh 3.1.201
|
run: __tests__/verify-dotnet.sh 2.2.402
|
||||||
|
|
||||||
test-bypass-proxy:
|
test-bypass-proxy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -106,9 +111,10 @@ jobs:
|
|||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
- name: Clear tool cache
|
- name: Clear tool cache
|
||||||
run: rm -rf "/usr/share/dotnet"
|
run: rm -rf "/usr/share/dotnet"
|
||||||
- name: Setup dotnet 3.1.201
|
# 2.2 uses nuget to download the JSON nuget package, the package is built into 3.1
|
||||||
|
- name: Setup dotnet 2.2.402
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
dotnet-version: 3.1.201
|
dotnet-version: 2.2.402
|
||||||
- name: Verify dotnet
|
- name: Verify dotnet
|
||||||
run: __tests__/verify-dotnet.sh 3.1.201
|
run: __tests__/verify-dotnet.sh 2.2.402
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
using System;
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||||
using Newtonsoft.Json;
|
using System.Text.Json;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace sample_csproj
|
namespace sample_csproj
|
||||||
{
|
{
|
||||||
class Program
|
[TestClass]
|
||||||
|
public class Program
|
||||||
{
|
{
|
||||||
static void Main(string[] args)
|
[TestMethod]
|
||||||
|
public void TestMethod1()
|
||||||
{
|
{
|
||||||
var json = JsonConvert.SerializeObject(new[] {"Hello", "World!" });
|
var json = JsonSerializer.Serialize(new[] {"Hello", "World!" });
|
||||||
Console.WriteLine(json);
|
Console.WriteLine(json);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"runtimeOptions": {
|
|
||||||
"configProperties": {
|
|
||||||
"System.Globalization.Invariant": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,13 +1,18 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<TargetFrameworks>netcoreapp3.1;netcoreapp2.2</TargetFrameworks>
|
||||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
|
||||||
<RootNamespace>sample_csproj</RootNamespace>
|
<RootNamespace>sample_csproj</RootNamespace>
|
||||||
|
|
||||||
|
<IsPackable>false</IsPackable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
|
||||||
|
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
|
||||||
|
<PackageReference Include="MSTest.TestFramework" Version="2.1.0" />
|
||||||
|
<PackageReference Include="coverlet.collector" Version="1.2.0" />
|
||||||
|
<PackageReference Include="System.Text.Json" Version="4.7.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -8,13 +8,23 @@ Write-Host "Found '$dotnet'"
|
|||||||
|
|
||||||
$version = & $dotnet --version | Out-String | ForEach-Object { $_.Trim() }
|
$version = & $dotnet --version | Out-String | ForEach-Object { $_.Trim() }
|
||||||
Write-Host "Version $version"
|
Write-Host "Version $version"
|
||||||
# if ($version -ne $args[0])
|
if ($version -ne $args[0])
|
||||||
# {
|
{
|
||||||
# Write-Host "PATH='$env:path'"
|
Write-Host "PATH='$env:path'"
|
||||||
# Write-Host "gcm dotnet:"
|
throw "Unexpected version"
|
||||||
# gcm dotnet | fl
|
}
|
||||||
# throw "Unexpected version"
|
|
||||||
# }
|
if ($args[1])
|
||||||
|
{
|
||||||
|
# SDKs are listed on multiple lines with the path afterwards in square brackets
|
||||||
|
$version = & $dotnet --list-sdks | ForEach-Object { $_.SubString(0, $_.IndexOf('[')).Trim() }
|
||||||
|
Write-Host "Version $version"
|
||||||
|
if (-not ($version -contains $args[1]))
|
||||||
|
{
|
||||||
|
Write-Host "PATH='$env:path'"
|
||||||
|
throw "Unexpected version"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Write-Host "Building sample csproj"
|
Write-Host "Building sample csproj"
|
||||||
& $dotnet build __tests__/sample-csproj/ --no-cache
|
& $dotnet build __tests__/sample-csproj/ --no-cache
|
||||||
@ -24,9 +34,20 @@ if ($LASTEXITCODE -ne 0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
Write-Host "Testing compiled app"
|
Write-Host "Testing compiled app"
|
||||||
$sample_output = "$(__tests__/sample-csproj/bin/Debug/netcoreapp3.0/sample.exe)".Trim()
|
$sample_output = "$(dotnet test __tests__/sample-csproj/ --no-build)"
|
||||||
Write-Host "Sample output: $sample_output"
|
Write-Host "Sample output: $sample_output"
|
||||||
if ($sample_output -notlike "*Hello*World*")
|
# For Side-by-Side installs we want to run the tests twice, for a single install the tests will run once
|
||||||
|
if ($args[1])
|
||||||
{
|
{
|
||||||
|
if ($sample_output -notlike "*Test Run Successful.*Test Run Successful.*")
|
||||||
|
{
|
||||||
throw "Unexpected output"
|
throw "Unexpected output"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($sample_output -notlike "*Test Run Successful.*")
|
||||||
|
{
|
||||||
|
throw "Unexpected output"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,13 +10,30 @@ if [ -z "$(echo $dotnet_version | grep $1)" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
dotnet_version="$(dotnet --list-sdks)"
|
||||||
|
echo "Found dotnet version '$dotnet_version'"
|
||||||
|
if [ -z "$(echo $dotnet_version | grep $2)" ]; then
|
||||||
|
echo "Unexpected version"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Building sample csproj"
|
echo "Building sample csproj"
|
||||||
dotnet build __tests__/sample-csproj/ --no-cache || exit 1
|
dotnet build __tests__/sample-csproj/ --no-cache || exit 1
|
||||||
|
|
||||||
echo "Testing compiled app"
|
echo "Testing compiled app"
|
||||||
sample_output=$(dotnet run --project __tests__/sample-csproj/ --no-build)
|
sample_output=$(dotnet test __tests__/sample-csproj/ --no-build)
|
||||||
echo "Sample output: $sample_output"
|
echo "Sample output: $sample_output"
|
||||||
if [ -z "$(echo $sample_output | grep Hello)" ]; then
|
# For Side-by-Side installs we want to run the tests twice, for a single install the tests will run once
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
if [ -z "$(echo $sample_output | grep "Test Run Successful.*Test Run Successful.")" ]; then
|
||||||
echo "Unexpected output"
|
echo "Unexpected output"
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -z "$(echo $sample_output | grep "Test Run Successful.")" ]; then
|
||||||
|
echo "Unexpected output"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
Loading…
x
Reference in New Issue
Block a user