Ash*_*ley 5 groovy jenkins jenkins-plugins jenkins-groovy jenkins-pipeline
我正在尝试为我们的管道自动化设置脚本化的 JenkinsFile,并希望将 configFileProvider 用于 maven。因此,我最终在脚本化的 JenkinsFile 中的所有 maven 阶段定义了这个块。有没有办法在脚本中只定义一次并在所有阶段引用它。我的示例 JenkinsFile 现在看起来像这样:-
node {
def mvnHome
def mvnSettings
stage('Prepare') {
mvnHome = tool 'maven-3.5.4'
}
stage('Checkout') {
checkout scm
}
stage('Build'){
configFileProvider(
[configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS install"
}
}
stage('Integration Test') {
sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean verify"
}
stage('Sonar') {
configFileProvider(
[configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS sonar:sonar"
}
}
stage('Packaging') {
configFileProvider(
[configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS package"
}
}
stage('Deploy') {
configFileProvider(
[configFile(fileId: '**********', variable: 'MAVEN_SETTINGS')]) {
sh "'${mvnHome}/bin/mvn' -s $MAVEN_SETTINGS deploy}"
}
}
}Run Code Online (Sandbox Code Playgroud)
这里的任何帮助或建议将一如既往地受到高度赞赏。
干杯,
阿什利
由于它是脚本化的,因此您不必遵循严格的结构,尽管不太漂亮,但您可以更改顺序并将各个阶段放入 configFileProvider 中:
\n\nconfigFileProvider(\n [configFile(fileId: \'**********\', variable: \'MAVEN_SETTINGS\')]) {\n\n stage(\'Build\'){\n sh "\'${mvnHome}/bin/mvn\' -s $MAVEN_SETTINGS install"\n }\n\n stage(\'Integration Test\') {\n sh "\'${mvnHome}/bin/mvn\' -Dmaven.test.failure.ignore clean verify"\n }\n\n stage(\'Sonar\') {\n sh "\'${mvnHome}/bin/mvn\' -s $MAVEN_SETTINGS sonar:sonar"\n }\n\n stage(\'Packaging\') {\n sh "\'${mvnHome}/bin/mvn\' -s $MAVEN_SETTINGS package"\n }\n\n stage(\'Deploy\') { \n sh "\'${mvnHome}/bin/mvn\' -s $MAVEN_SETTINGS deploy}"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n最好的,\nAndr\xc3\xa9
\n| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |