buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Boisvert <alex.boisv...@gmail.com>
Subject Re: Run tasks only if all the tests from all the projects ran successfully
Date Thu, 23 Aug 2012 15:05:37 GMT
You need to add "main_project:copy_files" to your command-line (and you can
drop "build" and "integration" sînce they are implicit dependencies.

On Thursday, August 23, 2012, Odelya Holiday wrote:

> Sorry - my mistake - the task is not being invoked.
>
> I defined it like this:
>
> task :copy_files => [task(:integration)] do
>   // copy the files
> end
>
> And my call to buildr is:
>
> buildr clean build package integration test:Suite junit:report
> test=all --verbose --trace
>
> Thanks
>
> On Wed, Aug 22, 2012 at 10:14 PM, Odelya Holiday <odelya@alicanto.com<javascript:;>>
> wrote:
> > Thanks
> >
> > Now it works perfectly.
> >
> > On Wed, Aug 22, 2012 at 10:03 PM, Alex Boisvert <alex.boisvert@gmail.com<javascript:;>>
> wrote:
> >> Oh forgot you were using integration.
> >>
> >> In that case, you can create a new task that depends on the integration
> >> task,
> >>
> >> define :main_project do
> >>   # sub projects
> >>
> >>   task :copy_files => [task(:integration)] do
> >>     # do stuff
> >>   end
> >> end
> >>
> >> and then add this task on the command line:
> >>
> >> buildr [other targets] main_project:copy_files
> >>
> >> On Wed, Aug 22, 2012 at 11:52 AM, Odelya Holiday <odelya@alicanto.com<javascript:;>
> >wrote:
> >>
> >>> This is not working for me.
> >>>
> >>> since I see that the build task is extending BEFORE the integration
> >>> tests. In my integration tests I create the test war that will be
> >>> copied to the real environment in case of success test.
> >>>
> >>> If I extend build, it is being invoked before the integration.setup
> >>> method that I declared.
> >>>
> >>>
> >>>
> >>> On Wed, Aug 22, 2012 at 6:50 PM, Alex Boisvert <
> alex.boisvert@gmail.com <javascript:;>>
> >>> wrote:
> >>> > On Wed, Aug 22, 2012 at 6:54 AM, Odelya Holiday <odelya@alicanto.com<javascript:;>
> >
> >>> wrote:
> >>> >
> >>> >> I have 3 projects which are defined in my buildfile.
> >>> >>
> >>> >> I would like to define, that if all the tests passed successfully,
> it
> >>> >> should do specific tasks. (copying files).
> >>> >>
> >>> >> So I declared in the main project definition:
> >>> >>
> >>> >>  test.using :fail_on_failure=>true
> >>> >>
> >>> >
> >>> > By the way, :fail_on_failre is true by default, so you don't need to
> >>> > specify this unless you want to set it to false.
> >>> >
> >>> > Hooking into the main project definition is the right approach since
> it
> >>> > implicitly depends on sub-projects.
> >>> >
> >>> >
> >>> >> and extended the test task like this:
> >>> >>
> >>> >> test do |test_task|
> >>> >> end
> >>> >>
> >>> >> however, I see that if 2 of the 3 tests succeeded, the extended
task
> >>> >> is being created.
> >>> >>
> >>> >> I would like it to be create only if all 3 succeeded.
> >>> >>
> >>> >
> >>> > Instead of enhancing the test task, use the build task.
> >>> >
> >>> > build do
> >>> >   # whatever you want
> >>> > end
> >>> >
> >>> > The build task depends on the test (see default dependencies
> >>> > here<
> >>>
> https://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr
> >>> >)
> >>> > so it will only be run if all the tests pass.
> >>> >
> >>> > alex
> >>>
> >>>
> >>>
> >>> --
> >>> Odelya
> >>>
> >
> >
> >
> > --
> > Odelya
>
>
>
> --
> Odelya
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message