为Maven构建创建了Jenkins管道作为共享库(/ vars文件夹中的多个groovy文件)。
该管道具有所有标准阶段,例如签出,构建,测试,Sonarqube扫描和发布到Nexus,这对于大多数用户而言已经足够。
Jenkins文件只有两行
from homepage.models import Address
Address.objects.all()
,由@library('FOOBAR_SHARED') _
mvnDeployPipeline()
和checkout scm
之后的pipeline.yaml文件驱动,例如
readJson()
为使此管道更加有用,我希望用户能够“注入”附加逻辑。
首先,他们可能需要采取一些初步行动,并且毕竟需要采取一切行动,例如最初的SCP,然后开始另一个
释放后作为下游作业的管道。
试图那样实现
pipeline.yaml具有其他条目
mvnVersion: 3.6.1
javaVersion: 13.0.1
mvnReleaseBranchPattern: master
...
和/ vars中的另一个groovy文件addStage.groovy(如果设置了相关属性,则会调用该文件)
并使用yaml的“原样”属性:
before: |
println 'foo'
println 'bar'
...
after: |
println 'foo'
println 'bar'
}
例如之前为def call(String mapvalue,String name) {
stage(name) {
mapvalue
}
}
,则是pipeline.yaml
的(多行)属性
但是地图值例如之前,仅回显到jobconsole而不执行。
这有可能吗?