2

_Events.groovy在某些情况下,我想在我的 eventListener 闭包中使构建失败。

我尝试了两种方法:

  1. 扔一个RuntimeException()
  2. 称呼ant.fail('failing the build')

我在控制台中得到以下输出:

    | Building WAR file.....
    running event listener code...
    [ERROR] Invalid environment argument of: 'tingaeuaeou', must be either 'testing', 'package', 'production' or 'native'
    | Error Exception occurred trigger event [CreateWarStart]: Sencha SDK optimization failed. (Use --stacktrace to see the full trace)
    | Done creating WAR target/product-selector-0.1.war
    grails> 

这是我为尝试使构建失败而编写的代码:

            ...
    ant.exec(outputproperty: "cmdOut", executable: 'sencha',
            dir: "$stagingDir", failOnError: true) {
        arg(value: 'app')
        arg(value: 'build')
        arg(value: "-e $senchaEnvironment")
    }

    def commandOutput = ant.project.properties.cmdOut

    println "${commandOutput}"

    if(commandOutput.contains('ERROR')){
        ant.fail(message:"Sencha SDK optimization failed.",status:1)
    }
            ...

问题是war脚本一直在运行,生成一个会损坏的war文件,而且我认为我的构建过程不会报告发生异常;我的持续集成构建将报告错误的成功!

有任何想法吗?

4

0 回答 0