|
Allegro Planet Remote Builds - Project Update |
Mark Oates
Member #1,146
March 2001
|
Allegro Planet Remote BuildsSome of you may recall discussions about Allegro Planet offering automated builds of your Allegro games. I wanted to share my very promising progress on the project so far. Progress
Plans
Problems
Ways That You Can Help
-- |
Elias
Member #358
May 2000
|
For my bot in #allegro which allows sending it arbitrary commands I have a Virtual Box instance to execute the binaries. It's very easy: vboxmanage controlvm botvm poweroff vboxmanage snapshot botvm restore botsnapshot vboxmanage startvm botvm --type headless (botvm is the name of my VM, botsnapshot is the name of a snapshot with the initial state I want it to be in before running the arbitrary command) Then I run the binary over ssh into that VM. There are solutions which are faster (but the above seems plenty fast, the bot still replies in less than a second) and more secure (there are ways to break out of virtual box). But just saying, it should not be very hard. And with Virtual Box you can also choose to run commands inside of Windows or OSX -- |
amarillion
Member #940
January 2001
|
If you're using docker, then you could just package up the dependencies in docker images, like I've done here It could potentially be also used to compile for android, which would be awesome! -- |
beoran
Member #12,636
March 2011
|
I personally find LXC containers even more useful and flexible than docker. Only downside is that it's only for Linux in Linux containers. |
Mark Oates
Member #1,146
March 2001
|
amarillion said: If you're using docker, then you could just package up the dependencies in docker images, like I've done here It could potentially be also used to compile for android, which would be awesome! This is amazing. I need to learn more about how this works because I'm not familiar with it. Do you know if it is possible to build windows binaries in a linux docker? -- |
Elias
Member #358
May 2000
|
Docker is a huge pain :p -- |
amarillion
Member #940
January 2001
|
Elias and I disagree about this I use docker for everything now - my build server, my blog and the TINS website all run on docker now. And on the build server most of the build jobs run in a separate docker container as well. It's the perfect way to keep dependency chains isolated and avoid conflicts. Docker ftw! Theoretically it would be possible to set up a docker build environment for cross compilation, but I haven't tried this yet. I still do my windows builds on a fully fledged windows VM. Remember a docker environment is linux (even if it's supported on Win10 and OS X with docker machine, that's just a thinly veiled VM running linux). -- |
Mark Oates
Member #1,146
March 2001
|
amarillion said: And on the build server most of the build jobs run in a separate docker container as well. What's the configuration of your build server? Are you on a cloud-hosted service? I'm on Heroku right now, but it doesn't look like there is support to setup some external packages with apt-get for example. Not without an experimental feature, it would seem. Quote: Remember a docker environment is linux Would I essentially still need to setup a complex cross-compile environment? E.g. no native dockers for emulating other OSs? -- |
amarillion
Member #940
January 2001
|
Mark Oates said: What's the configuration of your build server? Are you on a cloud-hosted service? The build server is an old laptop running under my desk. It uses Jenkins to define and schedule the jobs (you can set it up to track git commits). My website is hosted on a VPS, which basically gives you a complete linux VM to play with. I can install anything, the sky is the limit (well, as long as it fits in 20G disk space and 1G mem). My provider is Cloudvps, a dutch provider. Quote: Would I essentially still need to setup a complex cross-compile environment? E.g. no native dockers for emulating other OSs?
That is correct. The advantage of using docker, though, is that you can separate the maintenance of the build environment from the maintenance of the server, and you can track the maintenance in git. -- |
|