Fix GitHub Actions with updated Windows Server 2019 builder

This changeset fixes several problems with the github actions build. It
removes the dependency on a repo script to install msbuild + VS. It
switches the shell back to cmd.exe, so that the scripts in build.yml
continue to run. It installs nuget via chocolatey, since that's not on
the path by default. Finally, it also uses built in MSBUILD to satisfy
the first statement.
This commit is contained in:
Lucas Nicodemus 2020-02-09 20:27:57 -08:00
parent 6007edeb77
commit c1811b3afb
No known key found for this signature in database
GPG key ID: A07BD9023D1664DB
2 changed files with 14 additions and 36 deletions

View file

@ -6,35 +6,35 @@ jobs:
build: build:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@v1
with: with:
submodules: recursive submodules: recursive
- name: Download MSBuild installer - name: Install nuget
run: powershell "$source = Get-Content -Path \"scripts\\SetupMSBuild.cs\" ; Add-Type run: choco install nuget.commandline
-TypeDefinition \"$source\" ; [SetupMSBuild]::Download((Get-Item -Path \".\\\").FullName);
"
- name: Setup .NET SDK
run: start /i /wait vs_BuildTools.exe --add "Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools" -p --wait --installPath "%cd%\VSBuildTools" --norestart --nocache
- name: OTAPI Debug - name: OTAPI Debug
shell: cmd
run: | run: |
nuget.exe restore .\TerrariaServerAPI\TShock.4.OTAPI.sln nuget restore .\TerrariaServerAPI\TShock.4.OTAPI.sln
".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=Debug "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=Debug
cd .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\Debug cd .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\Debug
TShock.Modifications.Bootstrapper.exe TShock.Modifications.Bootstrapper.exe
- name: OTAPI Release - name: OTAPI Release
shell: cmd
run: | run: |
nuget.exe restore .\TerrariaServerAPI\TShock.4.OTAPI.sln nuget restore .\TerrariaServerAPI\TShock.4.OTAPI.sln
".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=Release "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=Release
cd .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\Release cd .\TerrariaServerAPI\TShock.Modifications.Bootstrapper\bin\Release
TShock.Modifications.Bootstrapper.exe TShock.Modifications.Bootstrapper.exe
- name: TerrariaServerAPI - name: TerrariaServerAPI
shell: cmd
run: | run: |
cd .\TerrariaServerAPI cd .\TerrariaServerAPI
"..\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TerrariaServerAPI\TerrariaServerAPI.csproj /p:Configuration=Release "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TerrariaServerAPI\TerrariaServerAPI.csproj /p:Configuration=Release
- name: TShock - name: TShock
shell: cmd
run: | run: |
nuget.exe restore TShock.sln nuget restore TShock.sln
".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TShockAPI\TShockAPI.csproj /p:Configuration=Release "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe" .\TShockAPI\TShockAPI.csproj /p:Configuration=Release
- uses: actions/upload-artifact@master - uses: actions/upload-artifact@master
with: with:
name: TShockRelease name: TShockRelease

View file

@ -1,22 +0,0 @@
using System;
public class SetupMSBuild
{
public static void Download(string directory)
{
try
{
var wc = new System.Net.WebClient();
var content = wc.DownloadString("https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16");
var url = System.Text.RegularExpressions.Regex.Match(content,
"https://download.visualstudio.microsoft.com/download/.*\\.exe").Value;
Console.WriteLine(url);
wc.DownloadFile(url, System.IO.Path.Combine(directory, "vs_BuildTools.exe"));
wc.DownloadFile("https://dist.nuget.org/win-x86-commandline/latest/nuget.exe", System.IO.Path.Combine(directory, "nuget.exe"));
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}