We have a buildbot

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Can't say I'm ready to deploy the buildbot yet, but it's coming along.

http://armabuilder.davefancella.com/waterfall

As you can see, the first attempt to upload the distribution (a source distribution, in this case) failed. The second attempt mostly succeeded, but because of a syntax error in the builder, it didn't get saved with the correct filename.

http://armabuilder.davefancella.com/dow ... ork/linux/

As you can see.

I've reconfigured to see if it can build the trunk (since I merged from 0.4 to trunk today). Curious to see what it'll look like. That build should be happening at 10am CST. I also fixed the filename problem. ;)

Ideally the next step is to set up Z-man's windows cross-compiling using wine. Basically, once I get that working, even with only the buildslaves I have, I'll deploy.

Edit:
Just modified the builder stuff to accommodate different branches when the release gets uploaded to the server.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Jip
Round Winner
Posts: 397
Joined: Sat Sep 26, 2009 5:32 pm

Re: We have a buildbot

Post by Jip »

Lucifer wrote:
Jip wrote:I also can offer a build slave if needed.
For what platform?
I got an Ubuntu/Debian Server. At home I still have an old Laptop with Windows 7. It could be used aswell but I can not let it turned on all the time.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Jip wrote:
Lucifer wrote:
Jip wrote:I also can offer a build slave if needed.
For what platform?
I got an Ubuntu/Debian Server. At home I still have an old Laptop with Windows 7. It could be used aswell but I can not let it turned on all the time.
What version is the server? If it's the same version as mine, we'll put it on the same builder and let it be a redundant slave. ;)

It would be worthwhile, if you're willing to help me with it, if we get the laptop with windows 7 able to function as a slave, and even get it into the system so that if it's on when a build is needed, it can build, but otherwise not rely on it. But if we can get a solid buildslave configuration from it, then someone who can offer a 24/7 windows machine as a buildslave can just hook right up. ;)

To do the Ubuntu one, you just need to install the buildbot package, create a slave, and send me the user & pass you set up. And, of course, be able to build arma on the server already. And point it at armabuilder.davefancella.com . (I'm having trouble getting to my router, so it may be a few days before I can log back in and open the port. It's kind of flighty, that router is)
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Jip
Round Winner
Posts: 397
Joined: Sat Sep 26, 2009 5:32 pm

Re: We have a buildbot

Post by Jip »

Lucifer wrote: What version is the server? If it's the same version as mine, we'll put it on the same builder and let it be a redundant slave. ;)

It would be worthwhile, if you're willing to help me with it, if we get the laptop with windows 7 able to function as a slave, and even get it into the system so that if it's on when a build is needed, it can build, but otherwise not rely on it. But if we can get a solid buildslave configuration from it, then someone who can offer a 24/7 windows machine as a buildslave can just hook right up. ;)

To do the Ubuntu one, you just need to install the buildbot package, create a slave, and send me the user & pass you set up. And, of course, be able to build arma on the server already. And point it at armabuilder.davefancella.com . (I'm having trouble getting to my router, so it may be a few days before I can log back in and open the port. It's kind of flighty, that router is)

Code: Select all

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu                                                                                                                                                          
Description:    Ubuntu 10.04.4 LTS                                                                                                                                              
Release:        10.04                                                                                                                                                           
Codename:       lucid
I will resetup the server soon and will switch to debian. I never tried to build the client on it but the server builds are working without a problem.
On my windows laptop I used to build the client with Code::Blocks (0.2.8x and 0.4). Haven't tried for a year though.
If you can provide me some links on how to setup a windows slave, I would try to set it up this weekend.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Jip wrote:

Code: Select all

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu                                                                                                                                                          
Description:    Ubuntu 10.04.4 LTS                                                                                                                                              
Release:        10.04                                                                                                                                                           
Codename:       lucid
I will resetup the server soon and will switch to debian. I never tried to build the client on it but the server builds are working without a problem.
On my windows laptop I used to build the client with Code::Blocks (0.2.8x and 0.4). Haven't tried for a year though.
If you can provide me some links on how to setup a windows slave, I would try to set it up this weekend.
Pretty old server, eh? It's up to you if you want to set it up now as a buildslave or wait until you switch to Debian. To build the client, you'd wind up installing all the UI crap that's usually out of place on a server. You don't have to do that, you can just build the dedicated server if you want. ;)

For Windows:
http://trac.buildbot.net/wiki/RunningBuildbotOnWindows

Also, is it possible to have the laptop automatically turn on at certain times, then shut down when it's done? It's scheduled nightly builds, so if you can do that, you can have it come on, say, half an hour before it's needed, then let it run for the hour or so it takes to build, and then turn off.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Jip
Round Winner
Posts: 397
Joined: Sat Sep 26, 2009 5:32 pm

Re: We have a buildbot

Post by Jip »

Lucifer wrote:
Jip wrote:

Code: Select all

# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu                                                                                                                                                          
Description:    Ubuntu 10.04.4 LTS                                                                                                                                              
Release:        10.04                                                                                                                                                           
Codename:       lucid
I will resetup the server soon and will switch to debian. I never tried to build the client on it but the server builds are working without a problem.
On my windows laptop I used to build the client with Code::Blocks (0.2.8x and 0.4). Haven't tried for a year though.
If you can provide me some links on how to setup a windows slave, I would try to set it up this weekend.
Pretty old server, eh? It's up to you if you want to set it up now as a buildslave or wait until you switch to Debian. To build the client, you'd wind up installing all the UI crap that's usually out of place on a server. You don't have to do that, you can just build the dedicated server if you want. ;)

For Windows:
http://trac.buildbot.net/wiki/RunningBuildbotOnWindows

Also, is it possible to have the laptop automatically turn on at certain times, then shut down when it's done? It's scheduled nightly builds, so if you can do that, you can have it come on, say, half an hour before it's needed, then let it run for the hour or so it takes to build, and then turn off.
Yeah, pretty old :P
I think I will wait until I switched to the new server. For the windows machine, I will try to work something out.

And to take it a bit further. It would be nice to rework the arma website, that the nightly builds can be accessed easily. Like years back on beta.armagetron.net
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Jip wrote:Yeah, pretty old :P
I think I will wait until I switched to the new server. For the windows machine, I will try to work something out.

And to take it a bit further. It would be nice to rework the arma website, that the nightly builds can be accessed easily. Like years back on beta.armagetron.net
Ultimately, I'll have a beta.davefancella.com site for accessing the builds. That'll be after I move the buildmaster to nsh22's vps.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Jip
Round Winner
Posts: 397
Joined: Sat Sep 26, 2009 5:32 pm

Re: We have a buildbot

Post by Jip »

Z-Man wrote:Wouldn't it be less work intensive if I checked how the build process I have been using for a while works? It was running in nice, stable virtual machines and used cross compilation via Wine for the Windows builds. Of course, I expect the Windows builds to be badly broken at this point.
Could you describe more detailed how your setup worked? Would be nice to have a cross compilation solution.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Jip wrote:
Z-Man wrote:Wouldn't it be less work intensive if I checked how the build process I have been using for a while works? It was running in nice, stable virtual machines and used cross compilation via Wine for the Windows builds. Of course, I expect the Windows builds to be badly broken at this point.
Could you describe more detailed how your setup worked? Would be nice to have a cross compilation solution.
Wholeheartedly agree. We can usually get Linux servers, Linux builders, whatever you want to call them. Windows, not so easy to come by.

So if we can do this without needing an actual flesh and blood windows computer, we should.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: We have a buildbot

Post by Light »

Lucifer wrote:
Jip wrote:
Z-Man wrote:Wouldn't it be less work intensive if I checked how the build process I have been using for a while works? It was running in nice, stable virtual machines and used cross compilation via Wine for the Windows builds. Of course, I expect the Windows builds to be badly broken at this point.
Could you describe more detailed how your setup worked? Would be nice to have a cross compilation solution.
Wholeheartedly agree. We can usually get Linux servers, Linux builders, whatever you want to call them. Windows, not so easy to come by.

So if we can do this without needing an actual flesh and blood windows computer, we should.
Is there an easy way to automate building the C::B source? Also, the Launchpad didn't come with all the extra stuff you need like FTGL, SDL, etc. I guess you could steal it from another though.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Light wrote: Is there an easy way to automate building the C::B source? Also, the Launchpad didn't come with all the extra stuff you need like FTGL, SDL, etc. I guess you could steal it from another though.
That is PRECISELY what I'm working on. The extra stuff has to be put in a place where buildslaves can get to it, but other than that minor technical issue, this is precisely what I'm working on..

Except, I'm not looking just to automate building the C::B source, I'm looking to create a tool that all developers can use to keep builds stable. It gets more complex than that, and is largely technical/irrelevant.

To end-users, I'm looking to restore nightly builds by distributing the work amongst whoever volunteers computers. Previously, Z-man's nightly builds were awesome, and when he (for whatever reason) was unable tom aintain them, they disappeared. I'm looking at a configuration that anybody could take over, but the buildmaster will be in a reliable place. So the likelihood of nightly builds being interupted should drop significantly (although not permanently, I ran a buildbot before, and then I stopped running it, so take everything I've said with a grain of salt)
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: We have a buildbot

Post by Light »

Lucifer wrote:
Light wrote: Is there an easy way to automate building the C::B source? Also, the Launchpad didn't come with all the extra stuff you need like FTGL, SDL, etc. I guess you could steal it from another though.
That is PRECISELY what I'm working on. The extra stuff has to be put in a place where buildslaves can get to it, but other than that minor technical issue, this is precisely what I'm working on..
I've thought about doing it before but I didn't know how to do it via command line in Windows. I'm a Linux user in some weird world where my bash is gone. lol Why can't Win just use nice little easy makefiles? lol

Anyways .. figuring out how to automate to distributing it is a small step. The automating is the tougher part. I could make this in Linux easy. Well, I wasn't thinking about a master and whatnot, just script running to check the newest version, download, build, and upload.

Maybe I'll look into it more on Windows. I should start learning some of this shit anyways since I'll probably be using it more. :( Feel sad about saying that.
User avatar
Lucifer
Project Developer
Posts: 8640
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas
Contact:

Re: We have a buildbot

Post by Lucifer »

Light wrote: I've thought about doing it before but I didn't know how to do it via command line in Windows. I'm a Linux user in some weird world where my bash is gone. lol Why can't Win just use nice little easy makefiles? lol

Anyways .. figuring out how to automate to distributing it is a small step. The automating is the tougher part. I could make this in Linux easy. Well, I wasn't thinking about a master and whatnot, just script running to check the newest version, download, build, and upload.

Maybe I'll look into it more on Windows. I should start learning some of this shit anyways since I'll probably be using it more. :( Feel sad about saying that.
I'm hoping when Z-man finally posts here that he's going to post his bash script for cross-compiling using wine and C::B, and with minimal instructions on where to put the libs needed (and a list of libs that need to be built first, if any). Then I'll adapt that shell script to create a Builder for buildbot, create a buildslave to test it, and then probably make a zip file with a working buildslave configuration and instructions on how to set it up.

If you were to make a batch file that likewise builds the game using C::B, I would want that and also basic instructions on where to put the libs, and then I'd adapt it to make a native Windows buildslave.

And do the rest of the stuff with it, as well.

As for building an installer, we only do that for releases. So the nightly builds will be a zip file that you unzip, and then just run armagetron from inside it. The same directory structure is used for everything, so making a script to do it should be pretty straightforward, including a batch file if need be. Those will need to be in the source checkout, if they aren't already, so as soon as they're made (or provided by Z-man), I'll do whatever is necessary to get it where it needs to be. ;)

After all of that, if we're going to use the buildbot for releases, then I'll probably create new Builders for the installers and do some buildbot magic to make them work. But that's a ways away. It would be nice, though, to say "We're going to be building the 0.4 release at <this time>" and then trigger the buildbot to build all of the distributables at that time.
Image

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Light
Reverse Outside Corner Grinder
Posts: 1667
Joined: Thu Oct 20, 2011 2:11 pm

Re: We have a buildbot

Post by Light »

Lucifer wrote: I'm hoping when Z-man finally posts here that he's going to post his bash script for cross-compiling using wine and C::B, and with minimal instructions on where to put the libs needed (and a list of libs that need to be built first, if any). Then I'll adapt that shell script to create a Builder for buildbot, create a buildslave to test it, and then probably make a zip file with a working buildslave configuration and instructions on how to set it up.

If you were to make a batch file that likewise builds the game using C::B, I would want that and also basic instructions on where to put the libs, and then I'd adapt it to make a native Windows buildslave.

And do the rest of the stuff with it, as well.

As for building an installer, we only do that for releases. So the nightly builds will be a zip file that you unzip, and then just run armagetron from inside it. The same directory structure is used for everything, so making a script to do it should be pretty straightforward, including a batch file if need be. Those will need to be in the source checkout, if they aren't already, so as soon as they're made (or provided by Z-man), I'll do whatever is necessary to get it where it needs to be. ;)

After all of that, if we're going to use the buildbot for releases, then I'll probably create new Builders for the installers and do some buildbot magic to make them work. But that's a ways away. It would be nice, though, to say "We're going to be building the 0.4 release at <this time>" and then trigger the buildbot to build all of the distributables at that time.
I was thinking to release as a portable app for Windows. It will still use the %appdata% directory and all, just look all pretty with a single executable file instead of installing or providing all the files (visible anyways).
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6711
Joined: Thu Dec 18, 2003 7:03 pm

Re: We have a buildbot

Post by Tank Program »

Thinking about it, it might be possible to setup a linux native cross-compile environment, e.g. i686-pc-mingw32-gnu-gcc. I've done it before for small binaries, but not for something as large as Armagetron. It would let you use all the nice linux native autotools though.
Image
Post Reply