Maven 如何将活动选项参数的选定值传递给生成脚本
我是詹金斯的新手,请帮我。 我有一个maven项目,它有点复杂,所以我使用testNG XML分离了测试。根据执行流,我将选择适当的.xml文件来构建项目。现在,我要做的是通过选择所需的xml文件手动构建脚本,如下所示 我已经设置了一个选择参数(name=testSuite),其中包括所有的XML和Build部分中的include mvn clean test命令Maven 如何将活动选项参数的选定值传递给生成脚本,maven,jenkins,jenkins-pipeline,jenkins-groovy,jenkins-declarative-pipeline,Maven,Jenkins,Jenkins Pipeline,Jenkins Groovy,Jenkins Declarative Pipeline,我是詹金斯的新手,请帮我。 我有一个maven项目,它有点复杂,所以我使用testNG XML分离了测试。根据执行流,我将选择适当的.xml文件来构建项目。现在,我要做的是通过选择所需的xml文件手动构建脚本,如下所示 我已经设置了一个选择参数(name=testSuite),其中包括所有的XML和Build部分中的include mvn clean test命令 mvn install test -DsuiteXmlFile=src/test/resources/testSuite/$test
mvn install test -DsuiteXmlFile=src/test/resources/testSuite/$testSuite
当我构建时,它将从choice参数下拉列表中获取所选值并执行
但我的要求是,我想集成它,以便在特定的时间段内定期运行构建。为此,我尝试使用“活动选择参数”,但请帮助我如何调用所选复选框选项并继续进行mvn安装测试
下面是我使用的方法
- 活动选择参数:流量
- 主动选择被动参数:脚本
- 活动参考参数:流量信息
mvn clean test
,因为到目前为止,它使用逗号分隔符传递所有所选的值,如caseCreation.xml,testng.xml
。因此,如何分离每个选定的XML并将其传递给mvn安装测试-DsuiteXmlFile=src/test/resources/testSuite/$testSuite
另外,请帮助我找出一种更好的方法,在特定的时间段内定期构建,以满足上述场景
提前谢谢
`我想推荐一个插件,我自己使用它来运行基于cron语法的作业,并能够指定参数: 如果我理解正确,用不同的参数定义几个运行就足够了。 如果要使用活动选项参数值,则应了解它将所有值存储为字符串。使用Groovy magic将字符串转换为列表并指定所需的索引(拆分),例如
将是您的第一个值下面是一个声明性管道的示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
Scripts.tokenize(',').each{
sh "mvn install test -DsuiteXmlFile=src/test/resources/testSuite/${it}"
}
}
}
}
}
}
脚本:
node (){
stage("Build") {
Scripts.tokenize(',').each{
sh "mvn install test -DsuiteXmlFile=src/test/resources/testSuite/${it}"
}
}
}
谢谢你的回复。我尝试了第二种选择。它可以工作,但我想知道如何使用管道脚本在所选选项之间进行迭代。例如:如果我从“脚本”中选择3个选项,我将如何编写管道脚本?在脚本参数中的所有选定选项之间迭代运行
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
Scripts.tokenize(',').each{
sh "mvn install test -DsuiteXmlFile=src/test/resources/testSuite/${it}"
}
}
}
}
}
}
node (){
stage("Build") {
Scripts.tokenize(',').each{
sh "mvn install test -DsuiteXmlFile=src/test/resources/testSuite/${it}"
}
}
}