sshPublisher如何在Jenkins的管道中使用参数

问题描述 投票:0回答:2

在管道中,g_VersionNum已定义,以下方法:

sshPublisher(publishers: [sshPublisherDesc(configName: 'VersionServer', transfers: [sshTransfer(excludes: '', execCommand: 'pwd;echo $${g_VersionNum}', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'alpha/${g_VersionNum}', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/abc-${g_VersionNum}.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

$ {g_VersionNum}在运行时为空白。当我使用20180327代替$ {g_VersionNum}时:

sshPublisher(publishers: [sshPublisherDesc(configName: 'VersionServer', transfers: [sshTransfer(excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'f_alpha/20180327', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/abc-20180327.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

该脚本正常运行。我尝试使用逃脱命令:\ $ {g_VersionNum},$$ {g_VersionNum},它们仍然无法正常工作。我已经通过相同步骤确认了参数定义:

sh 'echo ${g_VersionNum}'

该值可以正确显示。我已经测试过使用JENKINS环境变量,它们是有效的,只是我在管道中定义无效:

  environment {
    g_VersionNum = VersionNumber(versionNumberString: '${BUILD_YEAR}${BUILD_MONTH,XX}${BUILD_DAY,XX}', skipFailedBuilds: true, worstResultForIncrement: 'SUCCESS')
  }

谁知道如何在sshPublisher插件中使用参数?非常感谢!

jenkins groovy jenkins-pipeline
2个回答
1
投票

您必须用'更改',否则常规将无法执行并获得g_VersionNum的值


0
投票

应使用“”而不是'',我测试使用''不起作用:

sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '$DEPLOY_COMMAND', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '$SUB_MODULE/target', sourceFiles: '$SUB_MODULE/target/*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])

但是使用“”可以工作:

sshPublisher(publishers: [sshPublisherDesc(configName: 'test', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: "$DEPLOY_COMMAND", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: "$SUB_MODULE/target", sourceFiles: "$SUB_MODULE/target/*.jar")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
© www.soinside.com 2019 - 2024. All rights reserved.