I’m trying to build a “hello world” MonoGame project on Linux, which is straight-forward enough. Getting it to work on Travis-CI, not so much.
My problem is that running .
/monogame-sdk.run asks the user for a confirmation
(Y, n) to install. On Travis-CI, there’s no human present to pass in the input.
I don’t see any command-line arguments like
--install-without-asking and I couldn’t figure out any way to send a
Y to the process.
Is there any way to make this install without prompting the user?
I found this link on Stack Overflow, but it doesn’t seem to work (it’s for MonoGame 3.4, and it references
generate.sh – plus it doesn’t seem to pass anything to
You can see a sample build failure here if you are so inclined.
I solved this with the following work-around:
postinstall.sh with a version that doesn’t have the prompt
Here’s what the Travis config file looks like:
# MonoGame 3.6
- sudo apt-get install gtk-sharp3
- wget http://www.monogame.net/releases/v3.6/monogame-sdk.run
# Extract contents and overwrite postinstall.sh to not prompt for input
# See: https://github.com/MonoGame/MonoGame/issues/5879
- chmod +x monogame-sdk.run
- sudo ./monogame-sdk.run --noexec --keep --target ./monogame
- sudo chmod 777 ./monogame/postinstall.sh
- cp Build/postinstall.sh ./monogame
- cd monogame
- sudo chmod +x postinstall.sh
- sudo ./postinstall.sh
- cd ..
- nuget restore
- nuget install NUnit.Runners -Version 2.6.4 -OutputDirectory testrunner
- mono ./testrunner/NUnit.Runners.2.6.4/tools/nunit-console.exe ./MonoGameSample.UnitTests/bin/Debug/MonoGameSample.UnitTests.dll
This also includes steps to install NUnit’s runner and run a unit-test DLL.
Build/postinstall.sh is a this version, with the selected lines removed.
I opened an issue (feature request?) about this here.