Re: [Pharo-dev] Serializing Pharo Contribution CI jobs from one matrix

2014-01-23 Thread Christophe Demarey
Hi Sven,

Le 22 janv. 2014 à 18:24, Sven Van Caekenberghe a écrit :

 Hi,
 
 Is it possible to serialize (i.e. do not execute in parallel) the CI jobs of 
 one matrix of Pharo Contributions ?
 
 The Zinc jobs occasionally fails because they interfere with each other (i.e. 
 although they use random ports for servers during unit testing, sometimes 
 they use a port that is already in use by a parallel running job, presumably 
 from the built matrix).

Matrix jobs are seen as individual jobs.
Maybe you can just tick this option in the job configuration: Run each 
configuration sequentially

There are other solutions:
https://wiki.jenkins-ci.org/display/JENKINS/Port+Allocator+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Lockable+Resources+Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin
 
Christophe.

smime.p7s
Description: S/MIME cryptographic signature


Re: [Pharo-dev] Serializing Pharo Contribution CI jobs from one matrix

2014-01-23 Thread Sven Van Caekenberghe

On 23 Jan 2014, at 10:57, Christophe Demarey christophe.dema...@inria.fr 
wrote:

 Hi Sven,
 
 Le 22 janv. 2014 à 18:24, Sven Van Caekenberghe a écrit :
 
 Hi,
 
 Is it possible to serialize (i.e. do not execute in parallel) the CI jobs of 
 one matrix of Pharo Contributions ?
 
 The Zinc jobs occasionally fails because they interfere with each other 
 (i.e. although they use random ports for servers during unit testing, 
 sometimes they use a port that is already in use by a parallel running job, 
 presumably from the built matrix).
 
 Matrix jobs are seen as individual jobs.
 Maybe you can just tick this option in the job configuration: Run each 
 configuration sequentially

Works perfectly, thanks !

 There are other solutions:
   • https://wiki.jenkins-ci.org/display/JENKINS/Port+Allocator+Plugin
   • https://wiki.jenkins-ci.org/display/JENKINS/Lockable+Resources+Plugin
   • https://wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin
  
 Christophe.




[Pharo-dev] Serializing Pharo Contribution CI jobs from one matrix

2014-01-22 Thread Sven Van Caekenberghe
Hi,

Is it possible to serialize (i.e. do not execute in parallel) the CI jobs of 
one matrix of Pharo Contributions ?

The Zinc jobs occasionally fails because they interfere with each other (i.e. 
although they use random ports for servers during unit testing, sometimes they 
use a port that is already in use by a parallel running job, presumably from 
the built matrix).

Thx,

Sven


Re: [Pharo-dev] Serializing Pharo Contribution CI jobs from one matrix

2014-01-22 Thread Johan Brichau
Hi Sven,

We have a similar issue on our build server and Jenkins gives you an 
environment variable $EXECUTOR_NUMBER which you can use to define different 
ports to be used in the tests.
From our config, the function below assumes 3 possible executors and defines a 
set of environment variables that the tests will use. Of course, we use 
OSProcess to read the variables in Pharo itself.

Maybe this helps.
Cheers
Johan

function setupconfiguration {
if [ $EXECUTOR_NUMBER -eq 0 ]; then
export DISPLAY=:3
export NPGOODSPORT=7001
export NPGOODSTELNETPORT=8922
export NPSELENIUMPORT=4446
export NPNEXTPLANPORT=8082
export NPJASPERREPORTSPORT=9095
fi
if [ $EXECUTOR_NUMBER -eq 1 ]; then
export DISPLAY=:5
export NPGOODSPORT=7002
export NPGOODSTELNETPORT=8923
export NPSELENIUMPORT=4448
export NPNEXTPLANPORT=8084
export NPJASPERREPORTSPORT=9096
fi
if [ $EXECUTOR_NUMBER -eq 2 ]; then
export DISPLAY=:6
export NPGOODSPORT=7003
export NPGOODSTELNETPORT=8924
export NPSELENIUMPORT=4449
export NPNEXTPLANPORT=8085
export NPJASPERREPORTSPORT=9097
fi
}


On 22 Jan 2014, at 18:24, Sven Van Caekenberghe s...@stfx.eu wrote:

 Hi,
 
 Is it possible to serialize (i.e. do not execute in parallel) the CI jobs of 
 one matrix of Pharo Contributions ?
 
 The Zinc jobs occasionally fails because they interfere with each other (i.e. 
 although they use random ports for servers during unit testing, sometimes 
 they use a port that is already in use by a parallel running job, presumably 
 from the built matrix).
 
 Thx,
 
 Sven




Re: [Pharo-dev] Serializing Pharo Contribution CI jobs from one matrix

2014-01-22 Thread Sven Van Caekenberghe
Dag Johan,

Bedankt voor de tip. (Thanks for the tip)

I was hoping for a simpler solution ;-)

Doing it like that binds the tests a bit to the CI environment, but maybe I can 
make that optional.

BTW, on Pharo 3.0, environment access is built in:

  Smalltalk os environment getEnv: 'USER'.

I guess that I can't do that on 2.0, which I would need. Maybe I can pass 
something in as a command line argument. I'll have to think about that.

Sven

On 22 Jan 2014, at 19:37, Johan Brichau jo...@inceptive.be wrote:

 Hi Sven,
 
 We have a similar issue on our build server and Jenkins gives you an 
 environment variable $EXECUTOR_NUMBER which you can use to define different 
 ports to be used in the tests.
 From our config, the function below assumes 3 possible executors and defines 
 a set of environment variables that the tests will use. Of course, we use 
 OSProcess to read the variables in Pharo itself.
 
 Maybe this helps.
 Cheers
 Johan
 
 function setupconfiguration {
if [ $EXECUTOR_NUMBER -eq 0 ]; then
export DISPLAY=:3
export NPGOODSPORT=7001
export NPGOODSTELNETPORT=8922
export NPSELENIUMPORT=4446
export NPNEXTPLANPORT=8082
export NPJASPERREPORTSPORT=9095
fi
if [ $EXECUTOR_NUMBER -eq 1 ]; then
export DISPLAY=:5
export NPGOODSPORT=7002
export NPGOODSTELNETPORT=8923
export NPSELENIUMPORT=4448
export NPNEXTPLANPORT=8084
export NPJASPERREPORTSPORT=9096
fi
if [ $EXECUTOR_NUMBER -eq 2 ]; then
export DISPLAY=:6
export NPGOODSPORT=7003
export NPGOODSTELNETPORT=8924
export NPSELENIUMPORT=4449
export NPNEXTPLANPORT=8085
export NPJASPERREPORTSPORT=9097
fi
 }
 
 
 On 22 Jan 2014, at 18:24, Sven Van Caekenberghe s...@stfx.eu wrote:
 
 Hi,
 
 Is it possible to serialize (i.e. do not execute in parallel) the CI jobs of 
 one matrix of Pharo Contributions ?
 
 The Zinc jobs occasionally fails because they interfere with each other 
 (i.e. although they use random ports for servers during unit testing, 
 sometimes they use a port that is already in use by a parallel running job, 
 presumably from the built matrix).
 
 Thx,
 
 Sven