diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..2738918 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,11 @@ +FROM mcr.microsoft.com/devcontainers/anaconda:1-3 + +# Copy environment.yml (if found) to a temp location so we update the environment. Also +# copy "noop.txt" so the COPY instruction does not fail if no environment.yml exists. +COPY environment.yml* .devcontainer/noop.txt /tmp/conda-tmp/ +RUN if [ -f "/tmp/conda-tmp/environment.yml" ]; then umask 0002 && /opt/conda/bin/conda env update -n base -f /tmp/conda-tmp/environment.yml; fi \ + && rm -rf /tmp/conda-tmp + +# [Optional] Uncomment this section to install additional OS packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..fae8354 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,30 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/anaconda +{ + "name": "Anaconda (Python 3)", + "build": { + "context": "..", + "dockerfile": "Dockerfile" + }, + + "customizations": { + "vscode": { + "extensions": [ + "ms-dotnettools.vscode-dotnet-runtime", + "svelte.svelte-vscode", + "syler.sass-indented", + "dbaeumer.vscode-eslint", + "ms-dotnettools.csharp" + ], + "settings": { + "python.defaultInterpreterPath": "/opt/conda/bin/python", + "dotnet.dotnetPath": "/opt/conda/lib/dotnet/", + "omnisharp.dotNetCliPaths": [ + "/opt/conda/lib/dotnet/dotnet" + ] + } + } + }, + + "postCreateCommand": "bash -i -c 'conda init'" +} diff --git a/.devcontainer/noop.txt b/.devcontainer/noop.txt new file mode 100644 index 0000000..dde8dc3 --- /dev/null +++ b/.devcontainer/noop.txt @@ -0,0 +1,3 @@ +This file copied into the container along with environment.yml* from the parent +folder. This file is included to prevents the Dockerfile COPY instruction from +failing if no environment.yml is found. \ No newline at end of file diff --git a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/GameServiceWarden.Core.Tests.csproj b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/GameServiceWarden.Core.Tests.csproj index 2cc9cfb..555f1af 100644 --- a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/GameServiceWarden.Core.Tests.csproj +++ b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/GameServiceWarden.Core.Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 false @@ -17,7 +17,6 @@ - diff --git a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceDescriptorTest.cs b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceDescriptorTest.cs index 9140202..df06c73 100644 --- a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceDescriptorTest.cs +++ b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceDescriptorTest.cs @@ -4,7 +4,6 @@ using GameServiceWarden.Core.Module; using GameServiceWarden.ModuleFramework; using Xunit; using Xunit.Abstractions; -using SimpleLogger; namespace GameServiceWarden.Core.Tests.Modules { diff --git a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceManagerTest.cs b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceManagerTest.cs index 0e04ef6..0796839 100644 --- a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceManagerTest.cs +++ b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/Modules/ServiceManagerTest.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using System.IO; using GameServiceWarden.Core.Module; -using SimpleLogger; using GameServiceWarden.ModuleFramework; using Xunit; using Xunit.Abstractions; diff --git a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/UI/IPCMediatorTest.cs b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/UI/IPCMediatorTest.cs index b20e790..8080ee1 100644 --- a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/UI/IPCMediatorTest.cs +++ b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/UI/IPCMediatorTest.cs @@ -1,5 +1,4 @@ using System; -using SimpleLogger; using GameServiceWarden.Core.UI; using Xunit; using Xunit.Abstractions; diff --git a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/XUnitLogger.cs b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/XUnitLogger.cs index 520149c..4db83a1 100644 --- a/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/XUnitLogger.cs +++ b/GameServiceWarden.Tests/GameServiceWarden.Core.Tests/XUnitLogger.cs @@ -1,5 +1,4 @@ using System; -using SimpleLogger; using Xunit.Abstractions; namespace GameServiceWarden.Core.Tests diff --git a/GameServiceWarden.Tests/GameServiceWarden.Tests.sln b/GameServiceWarden.Tests/GameServiceWarden.Tests.sln deleted file mode 100644 index 5a1c88f..0000000 --- a/GameServiceWarden.Tests/GameServiceWarden.Tests.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.Core.Tests", "GameServiceWarden.Core.Tests\GameServiceWarden.Core.Tests.csproj", "{59D37458-41F3-478C-BDE6-CF33EC667701}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {59D37458-41F3-478C-BDE6-CF33EC667701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {59D37458-41F3-478C-BDE6-CF33EC667701}.Debug|Any CPU.Build.0 = Debug|Any CPU - {59D37458-41F3-478C-BDE6-CF33EC667701}.Release|Any CPU.ActiveCfg = Release|Any CPU - {59D37458-41F3-478C-BDE6-CF33EC667701}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/GameServiceWarden/GameServiceWarden.Core/GameServiceWarden.Core.csproj b/GameServiceWarden/GameServiceWarden.Core/GameServiceWarden.Core.csproj index 189d928..e4f51a8 100644 --- a/GameServiceWarden/GameServiceWarden.Core/GameServiceWarden.Core.csproj +++ b/GameServiceWarden/GameServiceWarden.Core/GameServiceWarden.Core.csproj @@ -3,12 +3,11 @@ - Exe - net7.0 + net8.0 diff --git a/GameServiceWarden/GameServiceWarden.Core/Module/ServiceDescriptor.cs b/GameServiceWarden/GameServiceWarden.Core/Module/ServiceDescriptor.cs index d55ed6f..a355db0 100644 --- a/GameServiceWarden/GameServiceWarden.Core/Module/ServiceDescriptor.cs +++ b/GameServiceWarden/GameServiceWarden.Core/Module/ServiceDescriptor.cs @@ -10,7 +10,6 @@ using System.Text; using System.Threading; using System.Threading.Tasks; using GameServiceWarden.Core.Module.Exceptions; -using SimpleLogger; using GameServiceWarden.ModuleFramework; using System.Net.Sockets; diff --git a/GameServiceWarden/GameServiceWarden.Core/UI/IPCController.cs b/GameServiceWarden/GameServiceWarden.Core/UI/IPCController.cs index 719ed58..292fa40 100644 --- a/GameServiceWarden/GameServiceWarden.Core/UI/IPCController.cs +++ b/GameServiceWarden/GameServiceWarden.Core/UI/IPCController.cs @@ -3,7 +3,6 @@ using System.Text.Json; using GameServiceWarden.InteractionAPI; using GameServiceWarden.InteractionAPI.Communicable.Requests; using GameServiceWarden.Core.Module; -using SimpleLogger; namespace GameServiceWarden.Core.UI { diff --git a/GameServiceWarden/GameServiceWarden.Core/UI/IPCMediator.cs b/GameServiceWarden/GameServiceWarden.Core/UI/IPCMediator.cs index 2fd90fc..54cea73 100644 --- a/GameServiceWarden/GameServiceWarden.Core/UI/IPCMediator.cs +++ b/GameServiceWarden/GameServiceWarden.Core/UI/IPCMediator.cs @@ -10,7 +10,6 @@ using System.Threading.Tasks; using GameServiceWarden.InteractionAPI; using GameServiceWarden.InteractionAPI.Communicable.Requests; using GameServiceWarden.InteractionAPI.Communicable.Responses; -using SimpleLogger; namespace GameServiceWarden.Core.UI { diff --git a/GameServiceWarden/GameServiceWarden.InteractionAPI/GameServiceWarden.InteractionAPI.csproj b/GameServiceWarden/GameServiceWarden.InteractionAPI/GameServiceWarden.InteractionAPI.csproj index 8268829..58990cd 100644 --- a/GameServiceWarden/GameServiceWarden.InteractionAPI/GameServiceWarden.InteractionAPI.csproj +++ b/GameServiceWarden/GameServiceWarden.InteractionAPI/GameServiceWarden.InteractionAPI.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 diff --git a/GameServiceWarden/GameServiceWarden.ModuleFramework/GameServiceWarden.ModuleFramework.csproj b/GameServiceWarden/GameServiceWarden.ModuleFramework/GameServiceWarden.ModuleFramework.csproj index 8268829..58990cd 100644 --- a/GameServiceWarden/GameServiceWarden.ModuleFramework/GameServiceWarden.ModuleFramework.csproj +++ b/GameServiceWarden/GameServiceWarden.ModuleFramework/GameServiceWarden.ModuleFramework.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 diff --git a/GameServiceWarden/GameServiceWarden.sln b/GameServiceWarden/GameServiceWarden.sln deleted file mode 100644 index 424da83..0000000 --- a/GameServiceWarden/GameServiceWarden.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.Core", "GameServiceWarden.Core\GameServiceWarden.Core.csproj", "{72FE4FFA-8730-4043-BCE9-794E816542CA}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.InteractionAPI", "GameServiceWarden.InteractionAPI\GameServiceWarden.InteractionAPI.csproj", "{A254A364-8089-4799-8F45-02E683D59F75}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.ModuleFramework", "GameServiceWarden.ModuleFramework\GameServiceWarden.ModuleFramework.csproj", "{23F7A773-D146-4522-8200-BDD60E39B79F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {72FE4FFA-8730-4043-BCE9-794E816542CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72FE4FFA-8730-4043-BCE9-794E816542CA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72FE4FFA-8730-4043-BCE9-794E816542CA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72FE4FFA-8730-4043-BCE9-794E816542CA}.Release|Any CPU.Build.0 = Release|Any CPU - {A254A364-8089-4799-8F45-02E683D59F75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A254A364-8089-4799-8F45-02E683D59F75}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A254A364-8089-4799-8F45-02E683D59F75}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A254A364-8089-4799-8F45-02E683D59F75}.Release|Any CPU.Build.0 = Release|Any CPU - {23F7A773-D146-4522-8200-BDD60E39B79F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {23F7A773-D146-4522-8200-BDD60E39B79F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {23F7A773-D146-4522-8200-BDD60E39B79F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {23F7A773-D146-4522-8200-BDD60E39B79F}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection -EndGlobal diff --git a/Jenkinsfile b/Jenkinsfile index a292907..ecf237b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,18 +1,21 @@ pipeline { - agent any + agent { + kubernetes { + cloud 'Reslate Systems' + defaultContainer 'conda' + } + } stages { stage ("Install") { steps { - sh "mamba env update --file environment.yml" - sh "echo 'mamba activate gameservicewarden' >> ~/.bashrc" - sh "git submodule update --init --recursive" - sh "dotnet restore GameServiceWarden" - sh "dotnet restore GameServiceWarden.Tests" + sh "conda update conda -y -q" + sh "conda env update -n base --file environment.yml" + sh "conda run -n base dotnet restore gameservicewarden.sln" } } stage ("Test") { steps { - sh "dotnet test --logger xunit --no-restore GameServiceWarden.Tests" + sh "conda run -n base dotnet test --logger xunit --no-restore GameServiceWarden.Tests" xunit([xUnitDotNet(excludesPattern: '', pattern: 'GameServiceWarden.Tests/*.Tests/TestResults/*.xml', stopProcessingIfError: true)]) } } diff --git a/environment.yml b/environment.yml index 29d2fdb..a873638 100644 --- a/environment.yml +++ b/environment.yml @@ -2,4 +2,5 @@ name: gameservicewarden channels: - conda-forge dependencies: - - dotnet-sdk=7.0.* \ No newline at end of file + - dotnet + - icu \ No newline at end of file diff --git a/gameservicewarden.sln b/gameservicewarden.sln new file mode 100644 index 0000000..206b491 --- /dev/null +++ b/gameservicewarden.sln @@ -0,0 +1,50 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GameServiceWarden", "GameServiceWarden", "{10373EAF-A78D-45C0-8F8E-FFA1F1D4DF33}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.Core", "GameServiceWarden\GameServiceWarden.Core\GameServiceWarden.Core.csproj", "{3F7158B1-8C80-4529-9B1B-827329F699A7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.InteractionAPI", "GameServiceWarden\GameServiceWarden.InteractionAPI\GameServiceWarden.InteractionAPI.csproj", "{0DF20C89-C55C-401F-A607-A41A6EC6273E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.ModuleFramework", "GameServiceWarden\GameServiceWarden.ModuleFramework\GameServiceWarden.ModuleFramework.csproj", "{26B4678F-A48E-4A81-A304-3179D7C984E8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GameServiceWarden.Tests", "GameServiceWarden.Tests", "{103BE93B-FB65-47AC-8741-90823A23A23E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GameServiceWarden.Core.Tests", "GameServiceWarden.Tests\GameServiceWarden.Core.Tests\GameServiceWarden.Core.Tests.csproj", "{48DD5E4F-1C9F-4642-AF7C-B43E91E83BB2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3F7158B1-8C80-4529-9B1B-827329F699A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F7158B1-8C80-4529-9B1B-827329F699A7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F7158B1-8C80-4529-9B1B-827329F699A7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F7158B1-8C80-4529-9B1B-827329F699A7}.Release|Any CPU.Build.0 = Release|Any CPU + {0DF20C89-C55C-401F-A607-A41A6EC6273E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DF20C89-C55C-401F-A607-A41A6EC6273E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DF20C89-C55C-401F-A607-A41A6EC6273E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DF20C89-C55C-401F-A607-A41A6EC6273E}.Release|Any CPU.Build.0 = Release|Any CPU + {26B4678F-A48E-4A81-A304-3179D7C984E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26B4678F-A48E-4A81-A304-3179D7C984E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26B4678F-A48E-4A81-A304-3179D7C984E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26B4678F-A48E-4A81-A304-3179D7C984E8}.Release|Any CPU.Build.0 = Release|Any CPU + {48DD5E4F-1C9F-4642-AF7C-B43E91E83BB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48DD5E4F-1C9F-4642-AF7C-B43E91E83BB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48DD5E4F-1C9F-4642-AF7C-B43E91E83BB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48DD5E4F-1C9F-4642-AF7C-B43E91E83BB2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {3F7158B1-8C80-4529-9B1B-827329F699A7} = {10373EAF-A78D-45C0-8F8E-FFA1F1D4DF33} + {0DF20C89-C55C-401F-A607-A41A6EC6273E} = {10373EAF-A78D-45C0-8F8E-FFA1F1D4DF33} + {26B4678F-A48E-4A81-A304-3179D7C984E8} = {10373EAF-A78D-45C0-8F8E-FFA1F1D4DF33} + {48DD5E4F-1C9F-4642-AF7C-B43E91E83BB2} = {103BE93B-FB65-47AC-8741-90823A23A23E} + EndGlobalSection +EndGlobal