You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Bastian Krol <ba...@tu-dortmund.de> on 2015/07/01 08:50:39 UTC

Re: Continuous Integration Redux

Hey folks!

So let's try to get this discussion started. I'll just throw in some 
half baked ideas here :-)

I really like the idea of having all the setup of the Jenkins machines, 
especially the slaves, as code in Ansible or something similar. We need 
to decide on a tool here. Obvious candidates are Ansible, Puppet and 
Chef. I definitely prefer Ansible over the other two (having worked both 
with Ansible and Puppet, but not Chef). However, for some tasks (like 
installing packages) Puppet offers a slightly higher level of 
abstraction than Ansible. This could have advantages when supporting a 
lot of OSes in the end. Opinions?

I also would like to be able to spin up these boxes locally as a virtual 
box to test them. In another projects we did this by combining Ansible 
with Vagrant, we also used Veewee (https://github.com/jedi4ever/veewee) 
to configure the base boxes. I could come up with a similar setup for 
the first box relatively quick, I think.

If everything is scripted and automated, it is also much easier to 
switch from one infrastructure to another.

BTW, where could we put this code? I believe the ASF has its own git 
infrastructure, right?

One thing I'm really unsure right now: Does our "vision" align with 
ci.apache.org? From what I read at http://ci.apache.org/#jenkins / 
https://builds.apache.org/ there seems to be a certain gap, namely:

* They do not have all OSes that we would like to support in the end, 
for example Ubuntu seems to be the only Linux flavor. OTOH, they do have 
quite a few (Solaris, FreeBSD, some Windows).
* How would installing different versions of Erlang work with 
infrastructure that we (the CouchDB project) do not control completely?
* The Jenkins machines and the slave seem to be maintained manually, so 
if we want to do a fully automated set up of the build/test slaves 
(like, with Ansible) this might be a conflict.

All these are just guesses and speculations, so, of course, we really 
need to talk it through with the ASF Infra/CI team. I would like to talk 
to them *after* we have come to a shared understanding of what we want 
to do.

Best regards

   Bastian

Re: Continuous Integration Redux

Posted by Dave Cottlehuber <dc...@apache.org>.
On Sat, 4 Jul 2015, at 12:38 AM, Bastian Krol wrote:
> >> BTW, where could we put this code? I believe the ASF has its own git infrastructure, right?
> >
> > You can request couchdb-ci git repo for you. It’ll be mirrored to GitHub under github.com/apache/couchdb-ci, so you can do PRs as normal(-ish) here: https://issues.apache.org/jira/servicedesk/customer/portal/1 (set the mailing list to notifications@couchdb.apache.org
> 
> For what it's worth, the current work in progress is here: 
> https://github.com/basti1302/couchdb-ci , just in case someone wants to 
> hop on the band wagon :)
> 
> Dominik, Francis, any plans for getting on board?
> 
> Ultimately the code will live at 
> http://git-wip-us.apache.org/repos/asf/couchdb-ci.git, and will be 
> mirrored to https://github.com/apache/couchdb-ci.
> 
> Right now, there is just a rudimentary Ansible script that installs 
> Jenkins and nginx, a Veewee definition for an Ubuntu base box, and a 
> Vagrantfile to test drive the Ansible scripts locally.


Bastian, this sounds great. I'm happy to help out in any way. Also, we
have a couchdb-vm which runs Ubuntu, this might be useful too. See
https://github.com/dch/couchdb-vm for some more notes if that helps.

A+
Dave

Re: Continuous Integration Redux

Posted by Jan Lehnardt <ja...@apache.org>.
> On 04 Jul 2015, at 00:38, Bastian Krol <ba...@tu-dortmund.de> wrote:
> 
>>> BTW, where could we put this code? I believe the ASF has its own git infrastructure, right?
>> 
>> You can request couchdb-ci git repo for you. It’ll be mirrored to GitHub under github.com/apache/couchdb-ci, so you can do PRs as normal(-ish) here: https://issues.apache.org/jira/servicedesk/customer/portal/1 (set the mailing list to notifications@couchdb.apache.org
> 
> For what it's worth, the current work in progress is here: https://github.com/basti1302/couchdb-ci , just in case someone wants to hop on the band wagon :)
> 
> Dominik, Francis, any plans for getting on board?
> 
> Ultimately the code will live at http://git-wip-us.apache.org/repos/asf/couchdb-ci.git, and will be mirrored to https://github.com/apache/couchdb-ci.
> 
> Right now, there is just a rudimentary Ansible script that installs Jenkins and nginx, a Veewee definition for an Ubuntu base box, and a Vagrantfile to test drive the Ansible scripts locally.
> 
> @Jan: I'd still would like to have a look at the current setup at ci.couchdb.org.

Sorry for the delay, do you have an account on http://ci.couchdb.org:8888 yet? If not, can you make one, tell me the username, and then I’ll assign the required permissions to your account.

Thanks!
Jan
--

> 
> Kind regards
> 
>  Bastian

-- 
Professional Support for Apache CouchDB:
http://www.neighbourhood.ie/couchdb-support/


Re: Continuous Integration Redux

Posted by Bastian Krol <ba...@tu-dortmund.de>.
>> BTW, where could we put this code? I believe the ASF has its own git infrastructure, right?
>
> You can request couchdb-ci git repo for you. It’ll be mirrored to GitHub under github.com/apache/couchdb-ci, so you can do PRs as normal(-ish) here: https://issues.apache.org/jira/servicedesk/customer/portal/1 (set the mailing list to notifications@couchdb.apache.org

For what it's worth, the current work in progress is here: 
https://github.com/basti1302/couchdb-ci , just in case someone wants to 
hop on the band wagon :)

Dominik, Francis, any plans for getting on board?

Ultimately the code will live at 
http://git-wip-us.apache.org/repos/asf/couchdb-ci.git, and will be 
mirrored to https://github.com/apache/couchdb-ci.

Right now, there is just a rudimentary Ansible script that installs 
Jenkins and nginx, a Veewee definition for an Ubuntu base box, and a 
Vagrantfile to test drive the Ansible scripts locally.

@Jan: I'd still would like to have a look at the current setup at 
ci.couchdb.org.

Kind regards

   Bastian

Re: Continuous Integration Redux

Posted by Jan Lehnardt <ja...@apache.org>.
> On 01 Jul 2015, at 08:50, Bastian Krol <ba...@tu-dortmund.de> wrote:
> 
> Hey folks!
> 
> So let's try to get this discussion started. I'll just throw in some half baked ideas here :-)
> 
> I really like the idea of having all the setup of the Jenkins machines, especially the slaves, as code in Ansible or something similar. We need to decide on a tool here. Obvious candidates are Ansible, Puppet and Chef. I definitely prefer Ansible over the other two (having worked both with Ansible and Puppet, but not Chef). However, for some tasks (like installing packages) Puppet offers a slightly higher level of abstraction than Ansible. This could have advantages when supporting a lot of OSes in the end. Opinions?
> 
> I also would like to be able to spin up these boxes locally as a virtual box to test them. In another projects we did this by combining Ansible with Vagrant, we also used Veewee (https://github.com/jedi4ever/veewee) to configure the base boxes. I could come up with a similar setup for the first box relatively quick, I think.
> 
> If everything is scripted and automated, it is also much easier to switch from one infrastructure to another.

This sounds all good :)

> BTW, where could we put this code? I believe the ASF has its own git infrastructure, right?

You can request couchdb-ci git repo for you. It’ll be mirrored to GitHub under github.com/apache/couchdb-ci, so you can do PRs as normal(-ish) here: https://issues.apache.org/jira/servicedesk/customer/portal/1 (set the mailing list to notifications@couchdb.apache.org


> One thing I'm really unsure right now: Does our "vision" align with ci.apache.org? From what I read at http://ci.apache.org/#jenkins / https://builds.apache.org/ there seems to be a certain gap, namely:
> 
> * They do not have all OSes that we would like to support in the end, for example Ubuntu seems to be the only Linux flavor. OTOH, they do have quite a few (Solaris, FreeBSD, some Windows).
> * How would installing different versions of Erlang work with infrastructure that we (the CouchDB project) do not control completely?
> * The Jenkins machines and the slave seem to be maintained manually, so if we want to do a fully automated set up of the build/test slaves (like, with Ansible) this might be a conflict.

In general, ASF Infra is there to support individual projects like Apache CouchDB. If we have new requirements, no currently covered by existing infrastructure, then we need to work with the Infra team on how to get this going. I think what we need is fairly vanilla CI setup, but it looks like the general CI infra is a bit Java heavy (as is the ASF ;), so there might be some work for us to do.

E.g. we wanted to move to git for version control, so Paul Davis from the CouchDB team worked with Infra on how to solve this ASF-wide. I envision a similar collaboration, at least in the beginning between the CouchDB CI team and the ASF Infra CI teams.

> All these are just guesses and speculations, so, of course, we really need to talk it through with the ASF Infra/CI team. I would like to talk to them *after* we have come to a shared understanding of what we want to do.

Just repeating what you said, I agree that this sounds like a good plan of action:
1. find out what we want.
2. talk to ASF Infra on how we can get it going.
3. Profit.

Thanks for taking the lead here, Bastian! :)

Best
Jan
--

> 
> Best regards
> 
>  Bastian

-- 
Professional Support for Apache CouchDB:
http://www.neighbourhood.ie/couchdb-support/