From c1811b3afbd216f2522f0464d225060d7f5894f7 Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Sun, 9 Feb 2020 20:27:57 -0800 Subject: [PATCH] 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. --- .github/workflows/build.yml | 28 ++++++++++++++-------------- scripts/SetupMSBuild.cs | 22 ---------------------- 2 files changed, 14 insertions(+), 36 deletions(-) delete mode 100644 scripts/SetupMSBuild.cs diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3070d2d6..ee94c01d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,35 +6,35 @@ jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@master + - uses: actions/checkout@v1 with: submodules: recursive - - name: Download MSBuild installer - run: powershell "$source = Get-Content -Path \"scripts\\SetupMSBuild.cs\" ; Add-Type - -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: Install nuget + run: choco install nuget.commandline - name: OTAPI Debug + shell: cmd run: | - nuget.exe restore .\TerrariaServerAPI\TShock.4.OTAPI.sln - ".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=Debug + nuget restore .\TerrariaServerAPI\TShock.4.OTAPI.sln + "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 TShock.Modifications.Bootstrapper.exe - name: OTAPI Release + shell: cmd run: | - nuget.exe restore .\TerrariaServerAPI\TShock.4.OTAPI.sln - ".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TerrariaServerAPI\TShock.4.OTAPI.sln /p:Configuration=Release + nuget restore .\TerrariaServerAPI\TShock.4.OTAPI.sln + "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 TShock.Modifications.Bootstrapper.exe - name: TerrariaServerAPI + shell: cmd run: | 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 + shell: cmd run: | - nuget.exe restore TShock.sln - ".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TShockAPI\TShockAPI.csproj /p:Configuration=Release + nuget restore TShock.sln + "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 with: name: TShockRelease diff --git a/scripts/SetupMSBuild.cs b/scripts/SetupMSBuild.cs deleted file mode 100644 index 89ce0588..00000000 --- a/scripts/SetupMSBuild.cs +++ /dev/null @@ -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); - } - } -} \ No newline at end of file