On Friday, 27 September 2013 at 12:47:19 UTC, Daniel Davidson
wrote:
To be clear it is not important to me that it be drone.io -
again that is my first exposure to CI. But for Dart I have a
github repository containing a package with a bunch of tests
that succeed. I go to drone and create a project. In the
process it offers to select any of my github repositories and
then you select the language. A small script drives the *test*
which is usually just something that runs calls out to your
test scripts. The language you select allows the build to know
what to do after cloning your repository before calling your
test. So for the case of dart, it shows the version of dart
being used (which they keep as the latest version), then it
does a *pub install* which installs all your Dart package
requirements, then it runs your tests. If they pass your badge,
which is a link to the status of the latest build is green.
Here is a sample badge for a json schema validator:
https://drone.io/github.com/patefacio/json_schema/latest
The nice thing is, any time you commit to github a build is
automatically kicked off and you get notification of
success/failure.
I think the setup would work well with the right prereqs on the
box and with dub replacing pub for installing dependencies.
Maybe others are using something else - like Jenkins? It looks
like julia has a fair amount of this done with Travis. So what
does/should D users reach for?
Ah I see. Most often such software is run on own server and
environment is fully controlled. For example, I am hosting
Jenkins-based suite for Volt developers:
https://jenkins.dicebot.lv
Regarding CI as a public service, it still should be possible to
use it with D if it supports job dependencies and has basic C/C++
tools available. You can always define build dmd/phobos job and
make your project depend on it, with tiny bit of include path
tweaking. That may be much more cumbersome than you want though.
There are also some plans for doing automated CI for all projects
located in dub registry. I have recently discussed this with
Sonke (dub author) and going to try that at least with Linux
build slave. Prototype may be available by the end of the autumn
(rough terms). This is still not exactly dart.io though
Easiest way here may be to simply convience
https://travis-ci.org/ guys to add native D support - but I don't
know how to approach them :)