在Jenkinsfile Pipeline中使用S3Publisher插件的Groovy编译错误 &



一个非常新手的Jenkins问题,但我无法找到任何解决方案,可能由于我对Jenkins的理解有限,可能无法使可用的文档有意义。我正在使用Jenkins中的S3publisher插件,并正确配置了该插件的aws凭据。但是,我无法使用这个插件编写Jenkinsfile来上传文件。我将截断的管道粘贴到下面:

pipeline {
agent any
stages {
stage("publish to s3") {
steps {
//$class: 'S3BucketPublisher',
$class: 'S3Upload',
profileName: ‘myawsprofile’,
entries: [[
bucket: ‘mybucket’, 
excludedFile: '', 
flatten: false, 
gzipFiles: false, 
keepForever: false, 
managedArtifacts: false, 
noUploadOnFailure: false, 
selectedRegion: 'us-iso-east-1',
howDirectlyInBrowser: false, 
sourceFile: ‘myfile’, 
storageClass: 'STANDARD', 
uploadFromSlave: false, 
useServerSideEncryption: false]]
}
}
}
}
}

我做了各种修改,我一直运行到org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed错误,而运行詹金斯管道。我看到的最新错误是:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 27: unexpected token: S3Upload @ line 27, column 29.
$class: 'S3Upload',

有没有人遇到这个之前或让我知道我应该去哪里看看得到一些更多的了解这个插件应该如何通过Jenkinsfile工作?

我没有特别使用这个插件,但是看看文档,你可以尝试这样做:

S3Upload {
profileName: ‘myawsprofile’,
....

如果这不起作用,你可以考虑使用Pipeline AWS插件,它更受欢迎,并且有更好的支持/文档。除了处理S3之外,它还能做更多的事情,而且使用起来很简单。对于您的特殊情况,可以在这里找到相关文档。此外,您可能会发现这个答案很有用,因为它讨论了使用Pipeline AWS插件端到端上传到S3。

使用Pipeline语法获取我作为步骤发布到一个阶段的代码片段,如下所示:

stage("publish to s3") {
steps {
s3Upload consoleLogLevel: 'INFO', dontSetBuildResultOnFailure: false, dontWaitForConcurrentBuildCompletion: false, entries: [[bucket: 'my-S3-bucket', excludedFile: '', flatten: false, gzipFiles: false, keepForever: false, managedArtifacts: false, noUploadOnFailure: false, selectedRegion: 'us-east-1', showDirectlyInBrowser: false, sourceFile: '**/target/*.jar', storageClass: 'STANDARD', uploadFromSlave: false, useServerSideEncryption: false]], pluginFailureResultConstraint: 'FAILURE', profileName: 'test0-aws', userMetadata: []

}
}

最新更新