abarichello/godot-ci

Mono: Adding .NET

TheOrioli opened this issue · 1 comments

Certain plugins( such as https://github.com/31/GodotOnReady) might rely on the dotnet CLI being used to build the C# project. The current docker image is built on top of the mono:latest and does not include the .NET SDK and CLI tools.

The current workaround ( and potential solution) is to execute the following commands before building:

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
apt-get update -qq
apt-get install -y apt-transport-https
apt-get update -qq
apt-get install -y dotnet-sdk-6.0

which seems to be all that is required for Godot to prefer using the dotnet commands when building. Running these commands in the existing Dockerfile should work out of the box.

Some other potential solutions are:

  • Modify mono.Dockerfile to use mcr.microsoft.com/dotnet/sdk:6.0 or preferably mcr.microsoft.com/dotnet/sdk:6.0-alpine, which would be weird since the image is published as mono and might break workflows
  • a new image is built: godot-ci:dotnet which uses the above mentioned images, unfortunately this would add a third image to maintain

I'm also having issues with .net

Before adding C# everything was fine, but now nothing works and I get this error when deploying to GitHub pages and trying to play the game

index.js:362 ERROR: Condition "err" is true. Returned: err
onPrintError @ index.js:362
index.js:362 at: load_source_code (modules/gdscript/gdscript.cpp:787) - Condition "err" is true. Returned: err
onPrintError @ index.js:362
index.js:362 ERROR: Cannot load source code from file 'res://addons/inkgd/runtime/static/ink_runtime.gd'.
onPrintError @ index.js:362
index.js:362 at: load (modules/gdscript/gdscript.cpp:2184) - Condition "err != OK" is true. Returned: RES()
onPrintError @ index.js:362
index.js:362 ERROR: Failed loading resource: res://addons/inkgd/runtime/static/ink_runtime.gd. Make sure resources have been imported by opening the project in the editor at least once.
onPrintError @ index.js:362
index.js:362 at: _load (core/io/resource_loader.cpp:271) - Condition "found" is true. Returned: RE