You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by Alex Harui <ah...@adobe.com> on 2015/10/06 06:21:20 UTC

[FLEXJS][FALCONJX] Builds and CI (was Re: [DISCUSS] Release Apache FlexJS 0.5.0


On 10/5/15, 5:19 PM, "Justin Mclean" <ju...@classsoftware.com> wrote:

>Hi,
>
>> I think you may not have picked up the full context of the question.  If
>> you have a repo of framework code, its automated tests need the compiler
>> to compile them.  Meanwhile repo of compiler code has an automated test
>>to
>> prove that any change to the compiler can still compile the framework.
>
>Sounds like you just need to split the compiler tests into two sets and
>run in this order:
>1. compile the compiler
>2. run the non framework compiler tests
>3. use the compiler to compile the framework
>4. run the framework compiler tests
>5. run the framework tests

Yes, that is the correct sequence when starting from scratch or when both
repos have interdependent changes.  But for most changes, we don’t need
five distinct steps.  Should we have 5 jenkins jobs?  Actually, we’d need
two more to produce nighty builds once step 5 is successful.  Otherwise a
bad compiler nightly could get consumed by someone.

What do other’s think?  No objection from me if someone has the time to do
it.  I think we have all the right ant targets so it is just a matter of
setting up a different set of jobs.

-Alex



AW: [FLEXJS][FALCONJX] Builds and CI (was Re: [DISCUSS] Release Apache FlexJS 0.5.0

Posted by Christofer Dutz <ch...@c-ware.de>.
Well I think that's exactly what jenkins is built for ... all these sequences of things that are too boring to execute every time. 
You could have one "freestyle" job with mutliple steps and the last one being "deploy" after step 5 (in justins list) has passed. Or you have multiple jobs ... for example flex-falcon and flex-sdk which each have the "mustella" test run against them automatically.

In my current project here we have a network of about 70 independent Jenkins jobs that each trigger another in sequence ... but they handle everything from building, unti-testing, integration-testing, acceptence-testing, deployment, ... all working niceley.

Chris

________________________________________
Von: Alex Harui <ah...@adobe.com>
Gesendet: Dienstag, 6. Oktober 2015 06:21
An: dev@flex.apache.org
Betreff: [FLEXJS][FALCONJX] Builds and CI (was Re: [DISCUSS] Release Apache FlexJS 0.5.0

On 10/5/15, 5:19 PM, "Justin Mclean" <ju...@classsoftware.com> wrote:

>Hi,
>
>> I think you may not have picked up the full context of the question.  If
>> you have a repo of framework code, its automated tests need the compiler
>> to compile them.  Meanwhile repo of compiler code has an automated test
>>to
>> prove that any change to the compiler can still compile the framework.
>
>Sounds like you just need to split the compiler tests into two sets and
>run in this order:
>1. compile the compiler
>2. run the non framework compiler tests
>3. use the compiler to compile the framework
>4. run the framework compiler tests
>5. run the framework tests

Yes, that is the correct sequence when starting from scratch or when both
repos have interdependent changes.  But for most changes, we don’t need
five distinct steps.  Should we have 5 jenkins jobs?  Actually, we’d need
two more to produce nighty builds once step 5 is successful.  Otherwise a
bad compiler nightly could get consumed by someone.

What do other’s think?  No objection from me if someone has the time to do
it.  I think we have all the right ant targets so it is just a matter of
setting up a different set of jobs.

-Alex



Re: [FLEXJS][FALCONJX] Builds and CI (was Re: [DISCUSS] Release Apache FlexJS 0.5.0

Posted by Justin Mclean <ju...@classsoftware.com>.
Hi,

> Yes, that is the correct sequence when starting from scratch or when both
> repos have interdependent changes.  But for most changes, we don’t need
> five distinct steps.  Should we have 5 jenkins jobs?

A single job would do it as you can use anttask (or equiv) to run other build scripts. You could use a 3rd build script that uses the other two project build scripts containing these targets:
1) compile and run non sdk compiler tests
2) compile and run sdk compiler tests
3) compile and run sdks tests
4) compile and run both projects (i.e. targets 1-3)
5) make binaries
6) compile both projects and make binaries (i.e. targets 4 and 5)

If I was setting it up in Jenkins could either just run target 6 or make 5 jobs each run a single target and have each job depend on the previous being successful. It depends to you if you want the dependancies in an ant script or in jenkins, but given this is dependancy related then maven may be better suited for the job. In the currently environment I'd probably go for it being in the build scripts as that is under version control rather than having multiple Jenkin jobs.

Thanks,
Justin