digitalmars.D - Travis CI - Continuous Integration Testing Server
- Jacob Carlborg <doob me.com> Oct 25 2012
- "Paulo Pinto" <pjmlp progtools.org> Oct 25 2012
- =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> Oct 25 2012
- Jacob Carlborg <doob me.com> Oct 25 2012
- =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> Oct 26 2012
- Jacob Carlborg <doob me.com> Oct 26 2012
- Jacob Carlborg <doob me.com> Oct 26 2012
- =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> Oct 26 2012
- Jacob Carlborg <doob me.com> Oct 26 2012
- Jacob Carlborg <doob me.com> Oct 25 2012
- Jens Mueller <jens.k.mueller gmx.de> Oct 25 2012
- Jacob Carlborg <doob me.com> Oct 25 2012
- "Paulo Pinto" <pjmlp progtools.org> Oct 26 2012
- Jens Mueller <jens.k.mueller gmx.de> Oct 26 2012
- "David Nadlinger" <see klickverbot.at> Oct 26 2012
- Jacob Carlborg <doob me.com> Oct 27 2012
I've recently got some experience of a project called Travis CI. As the title says it's a CI, Continuous Integration testing server for open source projects. They host all the building and testing, you just add a YAML configuration file and a github hook and then it can build and run your tests. It can also test pull requests. We already have somewhat similar setup for DMD and Phobos including pull requests. But this would be for everyone. I think it would be great if this was something that people start to use for their projects in the D community. This Travis started out as a build server for Ruby, where it's wildly used. Ruby on Rails among other projects are using it. It also supports other languages like C, C++, Scala, Go and many others. The only problem is that it doesn't support D and it only supports Linux. I already created an issue for adding support for D : https://github.com/travis-ci/travis-ci/issues/730 Unfortunately I haven't got any answers yet. Maybe we can push this somehow. There's also an issue about supporting Windows and Mac OS X. It seems something might happen in this area pretty soon: https://github.com/travis-ci/travis-ci/issues/216#issuecomment-9781919 https://travis-ci.org/ https://github.com/travis-ci/travis-ci -- /Jacob Carlborg
Oct 25 2012
On Thursday, 25 October 2012 at 19:10:39 UTC, Jacob Carlborg wrote:I've recently got some experience of a project called Travis CI. As the title says it's a CI, Continuous Integration testing server for open source projects. They host all the building and testing, you just add a YAML configuration file and a github hook and then it can build and run your tests. It can also test pull requests. We already have somewhat similar setup for DMD and Phobos including pull requests. But this would be for everyone. I think it would be great if this was something that people start to use for their projects in the D community. This Travis started out as a build server for Ruby, where it's wildly used. Ruby on Rails among other projects are using it. It also supports other languages like C, C++, Scala, Go and many others. The only problem is that it doesn't support D and it only supports Linux. I already created an issue for adding support for D : https://github.com/travis-ci/travis-ci/issues/730 Unfortunately I haven't got any answers yet. Maybe we can push this somehow. There's also an issue about supporting Windows and Mac OS X. It seems something might happen in this area pretty soon: https://github.com/travis-ci/travis-ci/issues/216#issuecomment-9781919 https://travis-ci.org/ https://github.com/travis-ci/travis-ci
Personally I would rather use Jenkins as it is much more mature. Actually, maybe I should look into how to do a D CI system with Jenkins. -- Paulo
Oct 25 2012
On 25-10-2012 23:35, Paulo Pinto wrote:On Thursday, 25 October 2012 at 19:10:39 UTC, Jacob Carlborg wrote:I've recently got some experience of a project called Travis CI. As the title says it's a CI, Continuous Integration testing server for open source projects. They host all the building and testing, you just add a YAML configuration file and a github hook and then it can build and run your tests. It can also test pull requests. We already have somewhat similar setup for DMD and Phobos including pull requests. But this would be for everyone. I think it would be great if this was something that people start to use for their projects in the D community. This Travis started out as a build server for Ruby, where it's wildly used. Ruby on Rails among other projects are using it. It also supports other languages like C, C++, Scala, Go and many others. The only problem is that it doesn't support D and it only supports Linux. I already created an issue for adding support for D : https://github.com/travis-ci/travis-ci/issues/730 Unfortunately I haven't got any answers yet. Maybe we can push this somehow. There's also an issue about supporting Windows and Mac OS X. It seems something might happen in this area pretty soon: https://github.com/travis-ci/travis-ci/issues/216#issuecomment-9781919 https://travis-ci.org/ https://github.com/travis-ci/travis-ci
Personally I would rather use Jenkins as it is much more mature. Actually, maybe I should look into how to do a D CI system with Jenkins. -- Paulo
You don't really have to do anything special other than set up build jobs that invoke <build system you're using>: http://ci.lycus.org/ -- Alex Rønne Petersen alex lycus.org http://lycus.org
Oct 25 2012
On 2012-10-25 23:50, Alex Rønne Petersen wrote:You don't really have to do anything special other than set up build jobs that invoke <build system you're using>: http://ci.lycus.org/
Cool, I know about Jenkis but I didn't know about this. What software is available on the machines? -- /Jacob Carlborg
Oct 25 2012
On 26-10-2012 08:24, Jacob Carlborg wrote:On 2012-10-25 23:50, Alex Rønne Petersen wrote:You don't really have to do anything special other than set up build jobs that invoke <build system you're using>: http://ci.lycus.org/
Cool, I know about Jenkis but I didn't know about this. What software is available on the machines?
Oh, I probably gave off the wrong impression. It's not a public service a la Travis at all; just some machines a couple of contributors and I put together in a Jenkins setup. All but one of the jobs on there are D jobs and I just wanted to show that you can trivially build any D software with it (see the console logs for the various builds) since Jenkins lets you run any shell commands you want. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Oct 26 2012
On 2012-10-26 09:48, Alex Rønne Petersen wrote:On 26-10-2012 08:24, Jacob Carlborg wrote:On 2012-10-25 23:50, Alex Rønne Petersen wrote:You don't really have to do anything special other than set up build jobs that invoke <build system you're using>: http://ci.lycus.org/
Cool, I know about Jenkis but I didn't know about this. What software is available on the machines?
Oh, I probably gave off the wrong impression. It's not a public service a la Travis at all; just some machines a couple of contributors and I put together in a Jenkins setup. All but one of the jobs on there are D jobs and I just wanted to show that you can trivially build any D software with it (see the console logs for the various builds) since Jenkins lets you run any shell commands you want.
Oh, I see :(. I thought it looked fairly empty for a public service. -- /Jacob Carlborg
Oct 26 2012
On 2012-10-26 09:21, Paulo Pinto wrote:Yeah, just found out that all major build systems for native languages (scons, cmake, ...) are already supported.
But what about the compilers, i.e. DMD? -- /Jacob Carlborg
Oct 26 2012
On 26-10-2012 09:46, Jacob Carlborg wrote:On 2012-10-26 09:21, Paulo Pinto wrote:Yeah, just found out that all major build systems for native languages (scons, cmake, ...) are already supported.
But what about the compilers, i.e. DMD?
Jenkins lets you run anything. A job can literally consist purely of a series of shell commands that must all return 0 in order for the build to succeed. So, as long as the software you need is installed on the machine Jenkins (or a slave) is running on, you can run it in builds. -- Alex Rønne Petersen alex lycus.org http://lycus.org
Oct 26 2012
On 2012-10-26 09:49, Alex Rønne Petersen wrote:Jenkins lets you run anything. A job can literally consist purely of a series of shell commands that must all return 0 in order for the build to succeed. So, as long as the software you need is installed on the machine Jenkins (or a slave) is running on, you can run it in builds.
I read your other post now, I thought it was a public service. Where you don't necessarily control the machines. -- /Jacob Carlborg
Oct 26 2012
On 2012-10-25 23:35, Paulo Pinto wrote:Personally I would rather use Jenkins as it is much more mature. Actually, maybe I should look into how to do a D CI system with Jenkins.
What I like about Travis is that they will host the builds/tests for free. I think that's a huge difference and lowers the barrier to start with CI testing. -- /Jacob Carlborg
Oct 25 2012
Jacob Carlborg wrote:I've recently got some experience of a project called Travis CI. As the title says it's a CI, Continuous Integration testing server for open source projects. They host all the building and testing, you just add a YAML configuration file and a github hook and then it can build and run your tests. It can also test pull requests. We already have somewhat similar setup for DMD and Phobos including pull requests. But this would be for everyone. I think it would be great if this was something that people start to use for their projects in the D community. This Travis started out as a build server for Ruby, where it's wildly used. Ruby on Rails among other projects are using it. It also supports other languages like C, C++, Scala, Go and many others. The only problem is that it doesn't support D and it only supports Linux. I already created an issue for adding support for D : https://github.com/travis-ci/travis-ci/issues/730 Unfortunately I haven't got any answers yet. Maybe we can push this somehow. There's also an issue about supporting Windows and Mac OS X. It seems something might happen in this area pretty soon: https://github.com/travis-ci/travis-ci/issues/216#issuecomment-9781919 https://travis-ci.org/ https://github.com/travis-ci/travis-ci
I've been using cloudbees.com which offers a similar service based on Jenkins. Since Jenkins supports shell scripts to drive the build it was fairly easy to support D (see https://gluey.ci.cloudbees.com/job/ddl/). You can add your own systems for executing the builds (but I have never done this myself). I'm not sure whether pull requests are supported. They have reduced prices for FOSS projects. http://www.cloudbees.com/foss/index.cb It's very nice to have automated and tested builds for free. Jens
Oct 25 2012
On 2012-10-25 23:47, Jens Mueller wrote:I've been using cloudbees.com which offers a similar service based on Jenkins. Since Jenkins supports shell scripts to drive the build it was fairly easy to support D (see https://gluey.ci.cloudbees.com/job/ddl/).
Travis supports "make" and it probably supports shell scripts as well. But what about installed software?You can add your own systems for executing the builds (but I have never done this myself). I'm not sure whether pull requests are supported. They have reduced prices for FOSS projects. http://www.cloudbees.com/foss/index.cb It's very nice to have automated and tested builds for free.
Yeah, as I replied to another post: What I like about Travis is that they will host the builds/tests and do it for free. I think that's a huge difference and lowers the barrier to start with CI testing. -- /Jacob Carlborg
Oct 25 2012
On Thursday, 25 October 2012 at 21:50:13 UTC, Alex Rønne Petersen wrote:On 25-10-2012 23:35, Paulo Pinto wrote:On Thursday, 25 October 2012 at 19:10:39 UTC, Jacob Carlborg wrote:I've recently got some experience of a project called Travis CI. As the title says it's a CI, Continuous Integration testing server for open source projects. They host all the building and testing, you just add a YAML configuration file and a github hook and then it can build and run your tests. It can also test pull requests. We already have somewhat similar setup for DMD and Phobos including pull requests. But this would be for everyone. I think it would be great if this was something that people start to use for their projects in the D community. This Travis started out as a build server for Ruby, where it's wildly used. Ruby on Rails among other projects are using it. It also supports other languages like C, C++, Scala, Go and many others. The only problem is that it doesn't support D and it only supports Linux. I already created an issue for adding support for D : https://github.com/travis-ci/travis-ci/issues/730 Unfortunately I haven't got any answers yet. Maybe we can push this somehow. There's also an issue about supporting Windows and Mac OS X. It seems something might happen in this area pretty soon: https://github.com/travis-ci/travis-ci/issues/216#issuecomment-9781919 https://travis-ci.org/ https://github.com/travis-ci/travis-ci
Personally I would rather use Jenkins as it is much more mature. Actually, maybe I should look into how to do a D CI system with Jenkins. -- Paulo
You don't really have to do anything special other than set up build jobs that invoke <build system you're using>: http://ci.lycus.org/
Yeah, just found out that all major build systems for native languages (scons, cmake, ...) are already supported. -- Paulo
Oct 26 2012
Jacob Carlborg wrote:On 2012-10-25 23:47, Jens Mueller wrote:I've been using cloudbees.com which offers a similar service based on Jenkins. Since Jenkins supports shell scripts to drive the build it was fairly easy to support D (see https://gluey.ci.cloudbees.com/job/ddl/).
Travis supports "make" and it probably supports shell scripts as well. But what about installed software?
With Jenkins you can run any shell script. So I wrote a shell script that downloads and install dmd and continue. Probably that can be simplified using dvm.You can add your own systems for executing the builds (but I have never done this myself). I'm not sure whether pull requests are supported. They have reduced prices for FOSS projects. http://www.cloudbees.com/foss/index.cb It's very nice to have automated and tested builds for free.
Yeah, as I replied to another post: What I like about Travis is that they will host the builds/tests and do it for free. I think that's a huge difference and lowers the barrier to start with CI testing.
It is. It's amazing how much you can automate these days for free. Jens
Oct 26 2012
On Thursday, 25 October 2012 at 19:10:39 UTC, Jacob Carlborg wrote:I've recently got some experience of a project called Travis CI. As the title says it's a CI, Continuous Integration testing server for open source projects. They host all the building and testing, you just add a YAML configuration file and a github hook and then it can build and run your tests. It can also test pull requests.
Yes, Travis is indeed a great service. We use it for LDC CI and pull request testing (sadly, it is x86_32 only right now, but apparently the platform is supposed to be moved to 64 bit machines soon).This Travis started out as a build server for Ruby, where it's wildly used. Ruby on Rails among other projects are using it. It also supports other languages like C, C++, Scala, Go and many others. The only problem is that it doesn't support D and it only supports Linux.
Well, »it doesn't support D« is true in that there is no built-in support for it, but you are allowed to install arbitrary software on the system as part of your installation scripts (for example, the LDC pre-build hooks install LLVM and libconfig++). The most straightforward way would be to set up an Ubuntu PPA containing the DMD/GDC/LDC versions you need. But it would probably be a wise idea to coordinate with the Travis guys anyway, to avoid that suddenly some two hundred D projects all pull in the same packages from a server not in the Travis network…Unfortunately I haven't got any answers yet. Maybe we can push this somehow.
I'd try to approach the Travis people in #travis on FreeNode – from my experience, they are quite responsive there. Also note that all of Travis is open source, so I'm sure the process would be much quicker if there was an actual patch adding D support to discuss. David
Oct 26 2012
On 2012-10-26 15:28, David Nadlinger wrote:Well, »it doesn't support D« is true in that there is no built-in support for it, but you are allowed to install arbitrary software on the system as part of your installation scripts (for example, the LDC pre-build hooks install LLVM and libconfig++). The most straightforward way would be to set up an Ubuntu PPA containing the DMD/GDC/LDC versions you need. But it would probably be a wise idea to coordinate with the Travis guys anyway, to avoid that suddenly some two hundred D projects all pull in the same packages from a server not in the Travis network…
Ok, I didn't know you could do that.I'd try to approach the Travis people in #travis on FreeNode – from my experience, they are quite responsive there. Also note that all of Travis is open source, so I'm sure the process would be much quicker if there was an actual patch adding D support to discuss.
Absolutely, I just don't have any idea how I would add support for a new language, that's partly why I created the issue. The IRC channel seems like a good idea, thanks. -- /Jacob Carlborg
Oct 27 2012









Jacob Carlborg <doob me.com> 