【问题标题】:android gradle run assemble after tests pass测试通过后 android gradle run assemble
【发布时间】:2014-11-24 16:10:09
【问题描述】:

我正在尝试启动各种基于 android 的 gradle 任务,例如在运行“gradle clean test”之后组装。

一些背景...

我的公司有 jenkins,它由一个单独的团队管理,所以我无权自行配置。在对远程仓库 (git) 进行任何更改时,都会触发 jenkins 作业,运行 gradle clean test 并使用我们在仓库中的 build.gradle 文件。

我被告知这是构建团队将提供的唯一命令,如果我想要运行任何进一步的操作,我必须在 build.gradle 脚本中配置它们。

我想我可以做类似 afterTest(:assemble) 或 addTestListener() 但我似乎无法在 google 上找到任何示例。

这里有人可以帮助我吗?这甚至可能吗,还是我应该要求我的构建团队允许我根据我的需要运行一个 diff gradle 任务?

【问题讨论】:

    标签: android jenkins gradle android-gradle-plugin build.gradle


    【解决方案1】:

    统一配置 CI 作业是个好主意。但是,在运行gradle clean test 时,没有什么好方法可以执行额外的独立任务。他们必须至少运行gradle clean build,以便您可以使用build.dependsOn(myTask) 添加任务。 (但是,请记住,build 已经依赖于 assemble。)或者他们运行自定义任务,例如 gradle (clean) ciBuild,默认情况下仅依赖于 test,并且可以根据需要添加更多任务依赖项.

    【讨论】:

    • 问题是,如果他们可以运行任何其他命令,那么他们可以运行我想要的!我不确定他们是否愿意这样做:(但这是向他们提出进一步要求的好信息,谢谢。
    • 好的,快速提问。如果我可以让他们运行 gradle clean ciBuild 我怎样才能让它依赖于测试?我之前试过做dependsOn(test),它说找不到测试
    • 我相信 Android 项目只有一个 androidTest 任务。 check 将适用于 Android 和 Java 项目(但它也会运行为构建配置的其他代码质量检查,例如 FindBugs)。
    • 关于您的第一条评论,关键是构建团队通常需要统一的 CI 作业。这是通过始终运行类似gradle clean ciBuild(固定合同)之类的东西来实现的,而不是通过完全运行您感兴趣的任务(这可能会因构建/团队而异,并且也可能随时间而变化)。
    • 彼得,据我了解,ciBuild 是您为此示例创建的通用任务名称,它不是实际的 gradle 任务吗?然后我可以自己在 build.gradle 中定义 ciBuild 吗?构建团队为所有团队(包括 java 团队、scala 团队和 perl 团队)提供了多个不同的构建管道/设置。但是他们不太热衷于为 android 团队创建另一个,因为我们使用 gradle,他们说我们应该只使用当前的 gradle 设置,从它的声音来看,我不能使用(即 gradle clean test)
    猜你喜欢
    • 2016-11-24
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多