Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
round 2: new CI
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  5 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Ryan Davis  
View profile  
 More options Jul 14 2008, 7:31 pm
From: Ryan Davis <ryand-r...@zenspider.com>
Date: Mon, 14 Jul 2008 16:31:16 -0700
Local: Mon, Jul 14 2008 7:31 pm
Subject: round 2: new CI
Rubinius Cluster Test (bad name--I know)
----------------------------------------

cluster_test is a continuous build / test system for ruby
implementations. On the client side, it runs rubyspecs against any
number of ruby versions for a given implementation (mri, rbx,
etc). The server script collects submitted data and produces summaries
of the current results.

If You Want to Contribute:
--------------------------

Please coordinate with the rubinius team! We only need one incremental
and one full per platform. Anything more just gets dumped on the
floor. Save the salmon, etc etc.

Cut to the Chase: How to run a client:
-------------------------------------

0. Install ZenTest at least version 3.11

1. Follow multiruby setup steps below.
   * multiruby_setup update:rubygems
   * multiruby_setup rbx:git:current
   * multiruby -S gem install --no-ri --no-rdoc mspec

2. cd cluster_test
3. mkdir ~/work/rubinius-ci
4. ruby ci.rb -i -d ~/work/rubinius-ci -r rbx
5. Wait. It's now waiting for a commit.

Basic Architecture:
-------------------

ci.rb         - client run in various platforms for various ruby
                 implementations.

ci_submit.cgi - runs on ci.rubini.us and receives test result
                 payloads and files them via safecat.

ci_cron.rb    - runs on ci.rubini.us and collects the results and
                 generates html files, and updates client trigger files.

Running the Scripts:
--------------------

The package contains the following files:

+ ci.rb - the client side script.

           REQUIRES A PROPER MULTIRUBY SETUP. See below for details.

           Takes two optional args and one mandatory arg:

           ci.rb [-i] [-d dir] -r (mri|rbx)

           -i is incremental and builds into base_dir/builds/
incremental.
           -d dir changes the base directory to run out of.
           -r is the ruby implementation you're running against (mri,  
rbx, etc).

           The rest is minutia and can be discovered by reading the  
source.

+ ci_submit.cgi - server side build result submission CGI.

                   Tweak BASE_DIR and SAFE_CAT as necessary.

+ ci_cron.rb - server side cron script.

                Takes two optional args:

                ci_cron.rb [base_dir] [html_dir]

Client Strategy:
----------------

1) start and build necessary dir structure
2) head CI trigger URL to get timestamp
3) sleep and repeat 2 if date unchanged
4) if first time or timestamp has changed, run multiruby_update
5) git pull on rubyspec dir
6) run multiruby on the rubyspecs
7) split results from multiruby output
8) submit each result separately with rubyspec hash & ruby impl id (-v)

Client Dir Structure:
---------------------

   root/
     latest_hash.txt             - file with latest built hash
     latest_incremental_hash.txt - file with latest incrementally  
built hash
     HEAD/...                    - clone of rubyspecs
     builds/$hash/...            - clone of HEAD
     builds/incremental/...      - clone of HEAD

Server Dir Structure:
---------------------

   root/
     data/
     html/
       ci/
       trigger/
     tmp/

Multiruby Suggestions:
----------------------

*** Only have one ruby implementation per user ***

1) for mri, multiruby_setup mri:svn:branches
2) for rbx, multiruby_setup rbx:git:current
3) for other, submit patch to zentest project to teach multiruby_setup
    how to work with your impl.

Client Requirements:
--------------------

1) sudo gem install mspec ZenTest
2) multiruby_setup update:rubygems
3) multiruby_setup help and run spec(s) for your test target, e.g.:
    multiruby_setup mri:svn:branches - for all MRI active branches
4) multiruby -S gem install mspec

Server Requirements:
--------------------

1) sudo gem install tagz
2) safecat - http://jeenyus.net/~budney/linux/software/safecat.html

Maintenance Details:
--------------------

+ Server is hosted on hoshi.fallingsnow.net in ~ci/
+ CGI is located in ~ci/cgi-bin.
+ Cron is run by user ci and is checked in as "crontab".
+ Results are reported on: http://ci.rubini.us/

The following people have admin access on the server:

+ Evan Phoenix (irc: evan)
+ Ryan Davis   (irc: zenspider)

The follow CI clients are setup:

+ elle.fallingsnow.net - linux/x86-32/debian
   mode: incremental
   admin: Evan Phoenix (irc: evan)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Evan Phoenix  
View profile  
 More options Jul 14 2008, 7:49 pm
From: Evan Phoenix <e...@fallingsnow.net>
Date: Mon, 14 Jul 2008 16:49:03 -0700
Local: Mon, Jul 14 2008 7:49 pm
Subject: Re: [rubinius-dev] round 2: new CI
Something thats not mentioned here is the form that the data appears  
on http://ci.rubini.us. There are number of data points and vectors  
within the data, so here's my idea:

* Multiple pages, showing vectors in a simple 2d table

The current page lists simple rubyspec commit, per platform. More  
rubyspec commits, the page flows downward, toward older commits. This  
vector shows us which rubyspecs commits are working (but not any impl.  
data).

* Another page should show a snapshot view:

Impl / Last rubyspec hash / date / good:bad

This page would have a static size, defined by the number of  
implementations being running against. At first, this page would just  
have one row (Rubinius). This would be a heads up / dashboard page.

* Then there would be a set of pages, one per impl:

Each page would show:

rubyspec hash / date / good:bad

This page wild list all submits against the current impl, allowing  
with the rubyspec hashs that were run. This page would be used to  
discover when something went wrong. When either the impl. or the  
rubyspecs start failing, they'll continue to fail until fixed. You can  
use this page to find out where it broke, so that the breakage to be  
easily found.

* Compliance page:

A single page, containing:

rubyspec hash / date / rbx / jruby / ...

This page would be used to verify over all compliance among impls.  
This page is the least useful right now, with most impls having large  
sections of unimplemented features. But it would have a red or green  
background in each cell for each impl, depending on if it passed on  
failed that rubyspec hash.

So, thats my initial breakdown of some different page views.

  - Evan

On Jul 14, 2008, at 4:31 PM, Ryan Davis wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
M. Edward (Ed) Borasky  
View profile  
 More options Jul 14 2008, 10:58 pm
From: "M. Edward (Ed) Borasky" <zn...@cesmail.net>
Date: Mon, 14 Jul 2008 19:58:14 -0700
Local: Mon, Jul 14 2008 10:58 pm
Subject: Re: [rubinius-dev] round 2: new CI

Do you need x86_64 (dual-core SMP!) Gentoo Linux?

> Cut to the Chase: How to run a client:
> -------------------------------------

> 0. Install ZenTest at least version 3.11

Has that hit the repositories? All I see right now is 3.10.

> 1. Follow multiruby setup steps below.
>    * multiruby_setup update:rubygems
>    * multiruby_setup rbx:git:current
>    * multiruby -S gem install --no-ri --no-rdoc mspec

> 2. cd cluster_test
> 3. mkdir ~/work/rubinius-ci
> 4. ruby ci.rb -i -d ~/work/rubinius-ci -r rbx
> 5. Wait. It's now waiting for a commit.

This runs non-root, right?

--
M. Edward (Ed) Borasky
http://ruby-perspectives.blogspot.com/

"A mathematician is a machine for turning coffee into theorems." --
Alfréd Rényi via Paul Erdős

  znmeb.vcf
< 1K Download

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
jredville  
View profile  
 More options Aug 6 2008, 2:44 am
From: jredville <james.devi...@gmail.com>
Date: Tue, 5 Aug 2008 23:44:04 -0700 (PDT)
Local: Wed, Aug 6 2008 2:44 am
Subject: Re: round 2: new CI
We were talking on #ironruby, and decided you should use a 3d cubic
structure morphing over time. All of this of course implemented in
Silverlight!

Glad to help

JD

On Jul 14, 4:49 pm, Evan Phoenix <e...@fallingsnow.net> wrote:


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Charles Oliver Nutter  
View profile  
 More options Aug 6 2008, 3:32 am
From: Charles Oliver Nutter <charles.nut...@sun.com>
Date: Wed, 06 Aug 2008 02:32:42 -0500
Local: Wed, Aug 6 2008 3:32 am
Subject: Re: [rubinius-dev] round 2: new CI

Ryan Davis wrote:
> *** Only have one ruby implementation per user ***

> 1) for mri, multiruby_setup mri:svn:branches
> 2) for rbx, multiruby_setup rbx:git:current
> 3) for other, submit patch to zentest project to teach multiruby_setup
>     how to work with your impl.

Can you push the updated code with rbx stuff somewhere or point me to P4
setup info (pretty sure I still have an account)? The release version
doesn't have rbx stuff in it and I was hoping to base JRuby
modifications off that, since it seems like ZenTest 3.10 has a lot of
MRI-specific logic you've probably reworked for rbx.

Also, is it necessary to have the list of tags and branches in
multiruby.rb? We put out a new release every 1-2 months, so it would be
out of date pretty quickly. Perhaps there could simply be a URL pointing
to a file, probably in SCM, that lists tags and branches to test.

- Charlie


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »