diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..3070d2d6 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +name: Build Server + +on: [push] + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@master + 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: OTAPI Debug + run: | + nuget.exe restore .\TerrariaServerAPI\TShock.4.OTAPI.sln + ".\VSBuildTools\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 + run: | + nuget.exe restore .\TerrariaServerAPI\TShock.4.OTAPI.sln + ".\VSBuildTools\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 + run: | + cd .\TerrariaServerAPI + "..\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TerrariaServerAPI\TerrariaServerAPI.csproj /p:Configuration=Release + - name: TShock + run: | + nuget.exe restore TShock.sln + ".\VSBuildTools\MSBuild\Current\Bin\MSBuild.exe" .\TShockAPI\TShockAPI.csproj /p:Configuration=Release + - uses: actions/upload-artifact@master + with: + name: TShockRelease + path: TShockAPI\bin\Release diff --git a/.github/workflows/msbuild-test.yml b/.github/workflows/msbuild-test.yml deleted file mode 100644 index 3ed2d884..00000000 --- a/.github/workflows/msbuild-test.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: MSBuild Test - -on: [push] - -jobs: - build: - runs-on: windows-latest - steps: - - uses: actions/checkout@master - - uses: actions/setup-dotnet@v1 - with: - dotnet-version: '4.5.1' - - run: dotnet build --configuration Release ./TShockAPI/TShockAPI.csproj diff --git a/README.md b/README.md index 5f5fda63..252320ee 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
TShock is a toolbox for Terraria servers and communities. That toolbox is jam packed with anti-cheat tools, server-side characters, groups, permissions, item bans, tons of commands, and limitless potential. It's one of a kind. diff --git a/scripts/SetupMSBuild.cs b/scripts/SetupMSBuild.cs new file mode 100644 index 00000000..89ce0588 --- /dev/null +++ b/scripts/SetupMSBuild.cs @@ -0,0 +1,22 @@ +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