Jenkins使用增量渐变构建构建管道
以这个基本构建管道为例(带渐变任务):Jenkins使用增量渐变构建构建管道,jenkins,gradle,continuous-delivery,build-pipeline,Jenkins,Gradle,Continuous Delivery,Build Pipeline,以这个基本构建管道为例(带渐变任务): 编译/运行单元测试(gradle clean build) 集成测试(梯度集成测试) 验收测试(梯度验收测试) 部署(gradle myCustomDeployTask) 根据Jez Humble的《持续交付》一书,您应该只构建一次二进制文件。因此,在上面的理论管道中,在步骤1中,我们清理、编译和构建WAR,在步骤2中,我们运行集成测试(使用步骤1中编译的代码),在步骤3中,我们运行验收测试(使用步骤1中编译的代码),在步骤4中,我们部署WAR(在步骤1中
那么,在坚持连续交付、Jenkins和Gradle的最佳实践的同时,如何使用Jenkins和Gradle实现上述管道呢?首先要确保后面的目标(integrationTest等)不依赖于编译。接下来,将第一个作业中生成的war文件作为jenkins工件发布。然后使用类似的方法将war文件复制到目标工作区。我还没有尝试过,但您可以尝试将以下内容添加到项目中:
build.onlyIf { ! Boolean.getBoolean('skip.build') }
使用-Dskip.build=true
参数运行gradle,构建任务将被跳过
看看gradle文档中的
这与本文中的答案类似
问题。但integrationTest是一项测试任务,测试任务取决于编译。Bagheera的观点也是正确的。gradle integrationTest-x build-x clean考虑到各种情况,这是一个有效的答案,但是如果
gradle compile
任务在Artifactory中查找Jar,并且只有在找不到Jar时才编译代码,那不是很好吗?嗨,你能发布这个问题的最终解决方案吗?