<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 12, 2017 at 4:01 PM, Norbert Hartl <span dir="ltr"><<a href="mailto:norbert@hartl.name" target="_blank">norbert@hartl.name</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-"><br>
> Am 12.10.2017 um 14:23 schrieb Torsten Bergmann <<a href="mailto:astares@gmx.de">astares@gmx.de</a>>:<br>
><br>
> Hi,<br>
><br>
> today there was an interesting effect visible for the Pharo build on CI for Pharo 7:<br>
><br>
> Esteban merged three contributions for Pharo 7 into #development (see [1]). All three merges on git triggered the CI.<br>
> For each a separate build for Pharo 7 started on CI independently.<br>
><br>
> While usually one would expect the builds in regular build order 183, 184, 185 the CI job for building 185 job was faster<br>
> (as you can see on the attached screenshot).<br>
><br>
> So the 185 series of images was copied first to the file server [3] because the job was already finished.<br>
> Afterwards 183 build completed on CI and these images were copied to the file server with a newer timestamp.<br>
><br>
> So you have the order 185, 183 with 183 having the files with the newest timestamp (but not being the most recent state of Pharo).<br>
><br>
> This leads to several unfortunate effects:<br>
>  1. When you sort on file server [3] descending by date the build 183 images are newer than the build 185 images<br>
>  2. When you use PharoLauncher to download "latest-32" you get an 183 image instead of the "real latest" 185 image<br>
>  3. When you ask Zeroconf to download the latest using <a href="http://get.pharo.org/70+vm" rel="noreferrer" target="_blank">http://get.pharo.org/70+vm</a> you also get 183 instead of the already<br>
>     available 185<br>
><br>
> So as the CI build of an older "update" (here 183) finished later than the most recent version (here 185)<br>
> you get 183 as "latest" instead of 185.<br>
><br>
> Any ideas how we could avoid such a side effect? Maybe a chain on the builds so 183 has to finished before 184 and 185 could be<br>
> built?<br>
><br>
</span>I don't understand why it is working like this. Usually only build for a job is active, others will be queued. So the problem here is that<br>
the jenkins spawns more builds in parallel for the same job.<br></blockquote><div><br></div><div>Yes, the thing is that the same job is being used to build the development branch and the pull requests.</div><div>If you think about it, this is the same setup as in travis.<br></div><div><br></div><div>The thing is that this does not bother me too much, considering the tradeoffs.</div><div><br></div><div>- I want pull request to run in parallel.</div><div>- I want to have less things to maintain :)</div><div><br></div><div>Now, </div><div> - we could split the job in two (integration vs pr validation). But this requires setting up a separate jenkins because otherwise they share the same slave configuration :/. And there is no way in the actual state of the plugins we use to limit the number of parallel builds...</div><div> - we could try to make a build wait until a build with lower build number is building...</div><div> - we could also forbid Esteban to push on the merge button while a build is running<br></div><div> </div><div>But doing any of those is a lot of work...</div><div><br></div><div>- Moreover, I think the problem is that we are using the file server as something it is not. The file server is... a file server.</div><div>Ideally, I'd like to attach meta-data to a release/build artifact, and be able to browse/search/sort using that metadata. Something alike artifactory or bintray.</div><div><br></div><div>- Also, I don't know how the pharo launcher is getting the latest image, but if instead of using the file timestamp it uses the build number, then this may be fixed, isn't it?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Norbert<br>
<span class="gmail-"><br>
> Thx<br>
> T.<br>
><br>
><br>
><br>
> [1] <a href="https://github.com/pharo-project/pharo/commits/development" rel="noreferrer" target="_blank">https://github.com/pharo-<wbr>project/pharo/commits/<wbr>development</a><br>
> [2] <a href="https://ci.inria.fr/pharo-ci-jenkins2/job/Test%20pending%20pull%20request%20and%20branch%20Pipeline/job/development" rel="noreferrer" target="_blank">https://ci.inria.fr/pharo-ci-<wbr>jenkins2/job/Test%20pending%<wbr>20pull%20request%20and%<wbr>20branch%20Pipeline/job/<wbr>development</a><br>
> [3] <a href="http://files.pharo.org/image/70/" rel="noreferrer" target="_blank">http://files.pharo.org/image/<wbr>70/</a><br>
</span>> <buildOrder.png><br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><table cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tbody>
<tr>
<td valign="top" style="width:86px;height:84px;border-style:solid;border-width:0px 1px 0px 0px;border-color:transparent rgb(0,0,0) transparent transparent;padding:4px">
<p style="margin:0px;min-height:14px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)"> </font><span style="font-family:Helvetica;font-size:10px"> </span><span style="font-family:Helvetica;font-size:10px"> </span><img src="https://www.cristal.univ-lille.fr//videos/presentation.jpg" width="200" height="112"><img src="https://intranet.cnrs.fr/Cnrs_pratique/communiquer/guides/PublishingImages/CNRS-filaire-Bichro-CMJN.jpg" alt="" style="font-size: 12.8px; margin: 5px;" width="96" height="96"></p>















</td><td valign="top" style="width:378px;height:84px;border-style:solid;border-width:0px 0px 0px 1px;border-color:transparent transparent transparent rgb(0,0,0);padding:4px"><p style="margin:0px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)">Guille Polito</font></p><p style="margin:0px"><span style="color:rgb(0,0,0);font-family:Helvetica;font-size:10px">Research Engineer</span></p><p style="margin:0px;font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0);min-height:10px"><font></font></p><p style="margin:0px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)">Centre de Recherche en Informatique, Signal et Automatique de Lille</font></p><p style="margin:0px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)">CRIStAL - UMR 9189</font></p>
<p style="margin:0px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)">French National Center for Scientific Research - <font><u><a href="http://www.cnrs.fr" target="_blank">http://www.cnrs.fr</a></u></font></font></p><p style="margin:0px;font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0);min-height:10px"><br></p>
<p style="margin:0px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)"><b>Web:</b> <a href="http://guillep.github.io" target="_blank"><font><u>http://guillep.github.io</u></font></a></font></p>
<p style="margin:0px"><font face="Helvetica" color="#000000" style="font-stretch:normal;font-size:10px;line-height:normal;font-family:Helvetica;color:rgb(0,0,0)"><b>Phone: </b>+33 06 52 70 66 13</font></p>
</td>
</tr>
</tbody>
</table></div></div></div></div>
</div></div>