You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Christofer Dutz <ch...@c-ware.de> on 2014/11/28 17:29:34 UTC

Jenkins builds and general structure of FlexJS/Falcon related project

Hi,


today I worked on getting the Flex builds working on builds.apache.org.


I changed the test runner in falcon to start the flashplayer with a timeout (currently set to 20 seconds as I asked someone of Infra to check what the flashplayer is complaining about ... but will set that back to 1 or 2 seconds as soon as that's done). Currently the entire tests had a timeout of 5 minutes after which the build just failled. I think this way individual tests will fail and we'll have the opportunity to check if any tests after that hanging one would pass.


Second thing was that the flashplayer on builds.apache.org doesn't seem to be configured to dump the flashlog.txt, so I adjusted the build script only to copy this, if it exists.


Now to my actual problem:


I did get quite some of them running. But FlexJS is causing me a little headache.

The problem is the build structure of the project in general.

It contains Falcon as well as FlexJS, unfortunately FlexJS' tests need ASJS, which in turn needs Falcon.

So we have sort of a "A --> B --> A" situation here.


Is there any reason why we can't split up Falcon, FalconJX, FlexJS and VF2JS into 4 modules? Actually splitting up into Falcon and FalconJX should be enough, but I would really like to vote for completely separating FlexJS and VF2JS cause this could help find the placed where both are sharing static variables which is causing quite some pain for me in Flexmojos (The two buggers keep on overwriting their configs) ;-)


If all were split up, we could create a build pipeline like this:

- build flex-sdk

- build falcon

- build asjs

- build falconjx

?Each would be a separate project for which jenkins is configured to execute in exactly this order.


What do you think?


Chris

AW: Jenkins builds and general structure of FlexJS/Falcon related project

Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Alex,

well I was simply assuming that something is generally not setup correctly and that one of them could simply check the reason for this and I was assuming that if we sort out the problem the tests could work fine.

Chris

-----Ursprüngliche Nachricht-----
Von: Alex Harui [mailto:aharui@adobe.com] 
Gesendet: Freitag, 28. November 2014 17:55
An: dev@flex.apache.org
Betreff: Re: Jenkins builds and general structure of FlexJS/Falcon related project



On 11/28/14, 8:29 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:


>I changed the test runner in falcon to start the flashplayer with a 
>timeout (currently set to 20 seconds as I asked someone of Infra to 
>check what the flashplayer is complaining about

This is exactly why using builds.a.o for GUI tests is inefficient.  You have to ask someone in Infra to tell you want is on the screen!

There is a -Dis.jenkins=true option that I think will skip the GUI tests.
That was my point in the other thread.  If there is a way for the builds.a.o to trust what the built is good without running GUI tests you’ll probably save a lot of time and hassle.

>The problem is the build structure of the project in general.
>
>It contains Falcon as well as FlexJS, unfortunately FlexJS' tests need 
>ASJS, which in turn needs Falcon.
>
>So we have sort of a "A --> B --> A" situation here.
>If all were split up, we could create a build pipeline like this:
>
>- build flex-sdk
>
>- build falcon
>
>- build asjs
>
>- build falconjx
>
>?Each would be a separate project for which jenkins is configured to 
>execute in exactly this order.

I’d like to solve the circularity as well, but ASJS will fail without FalconJX because it uses FalconJX for its tests.  Basically, each one currently wants to test against the other.

I’ll ponder this a bit more.

-Alex



Re: Jenkins builds and general structure of FlexJS/Falcon related project

Posted by Alex Harui <ah...@adobe.com>.

On 11/28/14, 8:54 AM, "Alex Harui" <ah...@adobe.com> wrote:

>
>
>On 11/28/14, 8:29 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:
>>The problem is the build structure of the project in general.
>>
>>It contains Falcon as well as FlexJS, unfortunately FlexJS' tests need
>>ASJS, which in turn needs Falcon.
>>
>>So we have sort of a "A --> B --> A" situation here.
>>If all were split up, we could create a build pipeline like this:
>>
>>- build flex-sdk
>>
>>- build falcon
>>
>>- build asjs
>>
>>- build falconjx
>>
>>?Each would be a separate project for which jenkins is configured to
>>execute in exactly this order.
>
>I’d like to solve the circularity as well, but ASJS will fail without
>FalconJX because it uses FalconJX for its tests.  Basically, each one
>currently wants to test against the other.
>
>I’ll ponder this a bit more.

After pondering a bit, here’s my thinkings:

I expect some contributors may only work in flex-asjs and not the
compilers and vice-versa so having the build scripts in flex-asjs and
flex-falcon each run tests that use the other project is desirable.

But for CI, I think the important factor is that FlexJS not only uses
FalconJX for testing, but also in the generation of one of its libraries.
AS gets cross-compiled into JS.  So maybe the answer is this:  On the CI
servers, they build the Falcon and FalconJX and run the their unit tests,
and optionally flex-sdk integration/feature tests.  Then build FlexJS and
run its integration tests. Then run FalconJX’s integration/feature tests
that require FlexJS.

Thoughts?
-Alex


Re: Jenkins builds and general structure of FlexJS/Falcon related project

Posted by Alex Harui <ah...@adobe.com>.

On 11/28/14, 8:29 AM, "Christofer Dutz" <ch...@c-ware.de> wrote:


>I changed the test runner in falcon to start the flashplayer with a
>timeout (currently set to 20 seconds as I asked someone of Infra to check
>what the flashplayer is complaining about

This is exactly why using builds.a.o for GUI tests is inefficient.  You
have to ask someone in Infra to tell you want is on the screen!

There is a -Dis.jenkins=true option that I think will skip the GUI tests.
That was my point in the other thread.  If there is a way for the
builds.a.o to trust what the built is good without running GUI tests
you’ll probably save a lot of time and hassle.

>The problem is the build structure of the project in general.
>
>It contains Falcon as well as FlexJS, unfortunately FlexJS' tests need
>ASJS, which in turn needs Falcon.
>
>So we have sort of a "A --> B --> A" situation here.
>If all were split up, we could create a build pipeline like this:
>
>- build flex-sdk
>
>- build falcon
>
>- build asjs
>
>- build falconjx
>
>?Each would be a separate project for which jenkins is configured to
>execute in exactly this order.

I’d like to solve the circularity as well, but ASJS will fail without
FalconJX because it uses FalconJX for its tests.  Basically, each one
currently wants to test against the other.

I’ll ponder this a bit more.

-Alex