-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update README for Ubuntu 20.04 & Godot Mono Prerequisite #51
Comments
Upon closer inspection, it seems this has less to do with the version of Ubuntu and more to do with the new |
It may even make sense to incorporate its installation by default, possibly with an option to disable it for special cases or backward compatibility. |
- Install .NET Core 3.1 SDK before attempting to export. See also: firebelley/godot-export#51 godotengine/godot#38167 (comment) https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/c_sharp_basics.html#setting-up-c-for-godot
Thanks for the report, I will do some testing and see what can be done. It's possible the best workaround at the moment is to use an older version of Ubuntu. |
@firebelley Thanks for the update. I'm doing my own research and testing in a Ubuntu VM to figure out the best workaround, as simply installing a .NET SDK wasn't enough, but may be part of the puzzle. I've seen multiple people dealing with these errors lately, although I have managed to get things working on a local Ubuntu 20.04 VM. I'm just trying to narrow down the exact configuration changes needed. I'll report back when I can, but yes please let me know if you can reproduce the issue. If it helps any, I'm targeting net472. Using .NET 5 SDK works fine with that target when building / running from Rider / Godot Editor, for example. What I meant by .NET 5 SDK doesn't work yet, is that it doesn't work as a target. It does / should work targeting net472 in csproj, even with language level 9. |
@firebelley The following setup is working for me on
but that step is completely unnecessary to create a working executable exported with:
csproj:
relevant yml excerpt:
|
Ok, upon further testing and examination, with pre-installation of a dotnet-sdk, your Action now seems to correctly preface the
I'm failing to understand the errors:
|
Using your action without pre-installing a dotnet-sdk:
Which is a much worse situation than above. And it's using Update: Even with these errors, the exported executable (for mac) amazingly actually runs without crashing, but not properly. Keyboard controls don't work. Character is frozen in midair (physics engine not working correctly). |
Got yet another piece of the puzzle. Pre-installing a dotnet-sdk alone isn't enough to avoid the previous comment's errors, that result in malfunctioning executables. Although I thought the custom editor settings are being overwritten by Godot in #52, it appears the overwrite happens after the custom editor settings are used for the export. The reason being is that changing this one line in Working
Relevant line:
Changing this value from |
45 CI builds later. And 100's of local Ubuntu VM builds. Here's my final working setup: env:
csproj:
editor-settings_3.tres:
export.yml:
|
- Update to Godot Mono 3.3. RC 9. - Use custom editor setting to specify dotnet build during export. - Set English US locale to avoid errors. - Export mac executable as a zipped app for itch.io, not a dmg. - Always upload build artifacts for debugging purposes. - Remove unnecessary Microsoft.NETFramework.ReferenceAssemblies package reference from csrpoj. Addresses firebelley/godot-export#51.
Awesome, nice work! This helps a lot. I think it makes sense to document this, specifically for the Godot Mono case. Though it is still strange that installing the .NET SDK is required, since it should already be available to the runner environment: https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-README.md#net-core-sdk Do you think it makes sense to set the |
Here's a bash script that does the same thing. Just customize
|
@firebelley Perhaps the command
I think it makes sense for Godot Mono, as it uses the command |
I was just doing some testing and it seems to me that removing the |
I should add that I didn't add any extra .NET SDK setup steps or anything, so I'd be curious to see if excluding the .NET setup step works for you as well. Here is my csproj:
And this is using the latest Godot Mono RC 9 |
@firebelley Awesome, thank you! Yes it's working without installing a dotnet-sdk, without custom editor settings, on your dev branch, on both mac and linux. I don't have a windows setup to test, unfortunately. csproj:
|
- Update to Godot Mono 3.3. RC 9. - Use firebelley/godot-export@dev to get fix for firebelley/godot-export#51. - Remove now-superfluous dotnet-sdk pre-install. - Set English US locale to avoid errors. - Export mac executable as a zipped app for itch.io, not a dmg. - Always upload build artifacts for debugging purposes. - Remove unnecessary Microsoft.NETFramework.ReferenceAssemblies package reference from csrpoj.
- Update to Godot Mono 3.3. RC 9. - Use firebelley/godot-export@dev to get fix for firebelley/godot-export#51. - Remove now-superfluous dotnet-sdk pre-install. - Set English US locale to avoid errors. - Export mac executable as a zipped app for itch.io, not a dmg. - Always upload build artifacts for debugging purposes. - Remove unnecessary Microsoft.NETFramework.ReferenceAssemblies package reference from csrpoj.
Great! Windows builds are working for me, so I'm going to call this good and release a new version shortly. |
Here is the PR #54 Please let me know if you'd like to see anything else added before I create the new version! |
@firebelley Thanks! The only other thing I was thinking of - not that it has to be in this release - is being able to change the log level. The Godot executable itself has However, the main reason I personally want this is to completely suppress spurious errors from the Godot executable because I don't want to see it complain about missing the .import folder (it auto-generates it from the .import files as it's complaining, lol), and the rest of them are from Mono I believe. If there were a real error, the build would fail regardless, so I could always go back if I wanted to and re-enable / un-suppress errors in that case with the convenience of a yml flag. The |
These are the errors directly related to this specific issue that, while looking important, don't actually affect the functionality of the final executable in any way that I've been able to detect. Which I think is understandable that I would want to suppress them until Godot fixes the situation.
The third error is a known bug due to using a generically-typed class. I still have no idea what the first two are about. |
Just for the sake of completeness, the
are related to this Godot feature request, and also do not affect the build / export process as Godot headless auto-generates the |
Regarding log verbosity levels, please open a new issue with that feature request so we can track it there. I think that makes sense to do, but I'm going to have to think more about how to accomplish it effectively. If you have ideas on what log level control would look like in this action, please feel free to make suggestions! I'm thinking maybe an optional input to allow a comma-separated list of arguments for the various commands makes sense, but I don't know how awkward (if at all) that would be. Also, it might make sense to tone down some of the verbosity by default. Again, please feel free to post your ideas into another issue so we can track it easier. |
I have just published v2.7.0 https://github.com/firebelley/godot-export/releases/tag/v2.7.0 which addresses the original issue. Please feel free to reopen this if you encounter this issue again with v2.7.0 |
- Switch from unstable 'dev' version to new release 2.7.0, since it now contains the fix for firebelley/godot-export#51.
Since GitHub Actions has updated
ubuntu-latest
to20.04
, Godot Mono from3.2.3
onward, requires.NET Core 3.1 SDK
or.NET 5 SDK
(both the latest as of this writing) to be installed. Just to clarify, previously,Ubuntu 18.04
+Godot Mono 3.2.3-stable
+godot-export@v2.6.1
worked just fine without installing a .NET SDK).Otherwise, you will get errors like the following:
Something like https://github.com/actions/setup-dotnet can be suggested to solve this. (It would have saved me many hours of frustration. See comments for more information):
Update: It's also required to use a specific custom editor setting (see comments for more information):
to allow Godot to run
dotnet msbuild
during export instead of justmsbuild
.Please see this issue comment with following solution and this Godot documentation section for more information about this problem.
The text was updated successfully, but these errors were encountered: