Ruby Gem Creates Broken Batch File for Rake

Discussion in 'Ruby' started by Bret Pettichord, Apr 10, 2007.

  1. Recently I have been integrating Rake with Nant. Specifically, I have
    been creating Nant tasks that trigger Rake. In the process of doing
    this, I have run into a problem: namely when Rake fails, Nant thinks
    that it succeeds. I have tracked down the problem to the Rake batch
    file, apparently created by the Gem system, that is used to invoke
    Rake.

    The problem is that the return code (which is 1, failure) returned
    from the
    Ruby process is not propagated by the Rake batch file. Nant thus sees
    a return code of 0 (success). I have worked around this problem by not
    using the Rake batch file and invoking ruby.exe directly. However, it
    seems to me that others may also run into this problem, and also that
    the Gem batch file generation system could be fixed. I suspect this
    problem could also affect other gems besides Rake.

    Here is my original Nant task, which did not correctly report Rake
    failures:

    <property name="rake" value="C:\ruby\bin\rake.bat" />
    <target name="_ui-tests">
    <exec program="${rake}" workingdir="${watir-tests.dir}"
    verbose="true">
    <arg value="ci:setup:testunit" />
    <arg value="test" />
    </exec>
    </target>

    Here is my corrected Nant task:

    <property name="ruby" value="C:\ruby\bin\ruby.exe" />
    <property name="rake" value="C:\ruby\bin\rake.bat" />
    <target name="_ui-tests">
    <exec program="${ruby}" workingdir="${watir-tests.dir}"
    verbose="true">
    <arg value="-x" />
    <arg value="${rake}" />
    <arg value="ci:setup:testunit" />
    <arg value="test" />
    </exec>
    </target>

    Here is some information from CC.Net (which I am also using) that I
    used to help debug return codes (aka error levels) on Windows:

    http://confluence.public.thoughtworks.org/display/CCNET/FAQ
    See "CruiseControl.NET is reporting that the build succeeded when it
    failed. Why?"

    A collegue suggested that I directly modify the batch file, but since
    it seems to be autogenerated by Rake, and it doesn't seem to actually
    be doing very much (I turned "@echo on" to see what it was doing), I
    figured it would be easier to simply avoid using it.

    I would appreciate comments and alternate suggestions.

    Bret

    Bret Pettichord, www.pettichord.com
    Lead Developer, Watir, http://wtr.rubyforge.org
    Test Architect, Dovetail, www.dovetailsoftware.com
     
    Bret Pettichord, Apr 10, 2007
    #1
    1. Advertising

  2. On 4/10/07, Bret Pettichord <> wrote:
    > figured it would be easier to simply avoid using it.


    We figured out as much in the course of CruiseControl.rb project.
    Have a look at Build#rake() method in app/models/build.rb of that code base.

    --
    Alex Verkhovsky
     
    Alexey Verkhovsky, Apr 10, 2007
    #2
    1. Advertising

  3. On 4/10/07, Bret Pettichord <> wrote:
    > def rake
    > # --nosearch flag here prevents CC.rb from building itself when a
    > project has no Rakefile
    > %{ruby -e "require 'rubygems' rescue nil; require 'rake'; load '#{
    > File.expand_path(RAILS_ROOT)}/tasks/cc_build.rake'; ARGV <<
    > '--nosearch'#{CruiseControl::Log.verbose? ? " << '--trace'" : ""} <<
    > 'cc:build'; Rake.application.run"}
    > end


    Ugly, isn't it? :)

    Alex
     
    Alexey Verkhovsky, Apr 10, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Joe Van Dyk
    Replies:
    2
    Views:
    108
    Damphyr
    Jan 31, 2006
  2. Austin 7873
    Replies:
    5
    Views:
    198
    Eric Hodel
    Jan 27, 2007
  3. peppermonkey
    Replies:
    1
    Views:
    251
    Gregory Brown
    Feb 10, 2007
  4. Adam Anderson
    Replies:
    1
    Views:
    136
    Adam Anderson
    Sep 19, 2007
  5. ZippySwish
    Replies:
    2
    Views:
    159
    ZippySwish
    Dec 23, 2008
Loading...

Share This Page