我正在尝试在 Jenkins 上实现一个阶段,以便在 Jenkins 上产生故障时发送电子邮件。我做了一些类似于詹金斯文档的东西:
#!/usr/bin/env groovy
node {
stage ('Send Email') {
echo 'Send Email'
post {
failure {
mail to: 'aa@bb.cc',
subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
body: "Something is wrong with ${env.BUILD_URL}"
}
}
}
}
但是我总是得到这个错误:
java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法“post”[archive,bat,build,catchError,checkout,deleteDir,dir,dockerFingerprintFrom,Docker FingerPrintRun,echo,emailext,EmailExtrecients,envVarsForTool,error,fileExists,getContext,git,input,isUnix,library,libraryResource,load,mail,milestone,node,parallel,powershell,properties,publishHTML,pwd,readFile,readTrusted,resolveScm,retry,script,sh,sleep,stage,stash,step,svn,超时,时间戳,tm,工具,非存档,取消存档,ValidateDeclarativeFileLine,WaitTill,withContext,withCredentials,withDockerContainer,WithTockerRegistry,withDockerServer,withEnv,wrap,writeFile,ws]或符号[all,allOf,always,ant,antFromApache,antOutcome,antTarget,any,anyOf,apiToken,architecture,archiveArtifacts,artifactManager,authorizationMatrix,batchFile,booleanParam,branch,buildButton,buildDiscarder,不区分大小写,区分大小写的,证书,变更日志,变更集,选择,choiceParam,cleanWs,时钟,云,命令,凭据,cron,crum,defaultView,demand,disableConcurrentBuilds、docker、dockerCert、dockerfile、downloadSettings、下游、dumb、envVars、环境、表达式、文件、fileParam、filePath、指纹、frameOptions、freeStyle、freeStyle Job、fromScm、fromSource、git、github、githubPush、gradle、headRegexFilter、headWildcardFilter、超链接模型、继承、继承全局、installSource、jacoco、jdk、jdkInstaller、jgit、,jgitapache、jnlp、jobName、junit、label、lastDuration、lastFailure、LastGrantedAuthories、lastStable、lastSuccess、legacy SCM、list、local、location、logRotator、loggedInUsersCanDoAnything、masterBuild、maven、maven3Mojos、mavenErrors、maven Mojos、mavenWarnings、modernSCM、myView、nodeProperties、非继承、nonStoredPasswordParam、none、not、OverrideInExtriggers、paneStatus、,参数、密码、模式、管道模型、pipelineTriggers、明文、插件、pollSCM、projectNamingStrategy、proxy、queueItemAuthenticator、quietPeriod、remotingCLI、run、runParam、schedule、scmRetryCount、search、security、shell、skipDefaultCheckout、skipStagesAfterUnstable、slave、sourceRegexFilter、SourceWilderFilter、ShuserPrivateKey、stackTrace、standard、status、string、,stringParam、swapSpace、text、textParam、tmpSpace、toolLocation、不安全、上游、用户名ColonPassword、用户名密码、ViewStirbar、weather、withAnt、zfs、zip]或全局[currentBuild、docker、env、params、pipeline、scm]
我看到其他一些帖子,但提出的建议对我不起作用
下面的代码片段在脚本管道中对我有用。我在现有的舞台上增加了一个新的舞台。
stage ('Send Email') {
echo "Mail Stage";
mail to: "email@domainxxx.com",
cc: 'manager@domainxxx.com', charset: 'UTF-8',
from: 'noreply@domainxxx.com', mimeType: 'text/html', replyTo: '',
bcc: '',
subject: "CI: Project name -> ${env.JOB_NAME}",
body: "<b>Example</b><br>Project: ${env.JOB_NAME} <br>Build Number: ${env.BUILD_NUMBER} <br> URL de build: ${env.BUILD_URL}";
}
您面临的问题是,您的节点并没有添加到声明性管道,您不能在节点上使用post。您需要使用声明性管道包装节点。
下面是示例代码
pipeline {
agent any
stages {
stage('Send Email') {
steps {
node ('master'){
echo 'Send Email'
}
}
}
}
post {
always {
echo 'I will always say Hello!'
}
aborted {
echo 'I was aborted'
}
failure {
mail to: 'aa@bb.cc',
subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
body: "Something is wrong with ${env.BUILD_URL}"
}
}
}
我在这里遇到了同样的问题。很多声明性的例子...无脚本。它几乎让你相信没有解决方案,但这没有意义。
这对我来说很有效(它不需要尝试/最后-或者如果你愿意的话抓住)。
node {
//some var declarations... or whatever
try {
//do some stuff, run your tests, etc.
} finally {
junit 'build/test-results/test/*.xml'
}
}
*编辑:看一看他们的文档……不小心,我完全按照他们的建议做了。只需单击“切换脚本化管道(高级)”链接,您就会看到它。
我有以下dsl: 这会失败并出现以下错误 我做错了什么?我正在使用 Jenkins2.89.4 作业DSL 1.68 管道作业2.20 管道:API 2.27 管道:基本步骤2.7 管道:构建步骤2.7 管道:声明1.2.9
我正试图读取詹金斯管道中的一个文件。 为此,我在我的jenkins文件中导入的库中定义了下面的函数。 但是,我一直得到以下例外。 此外,如果我删除< code>readFile函数调用,我的jenkins管道将成功执行。 你知道这里有什么问题吗?
我正在尝试删除警告,。所以,我正在为阶段添加块 现在,詹金斯给出了错误 添加块是正确的做法吗?
我想运行bash命令抛出Jenkins管道,我正在调用一个具有一些bash命令的函数,但我得到这个错误: 这是函数: defcopy_tools(){ } 你能帮忙吗?
问题内容: 我正在尝试在jenkins上实现一个阶段,以在jenkins发生故障时发送电子邮件。我做了一些类似于詹金斯记录的东西: 但是我总是得到这个错误: java.lang.NoSuchMethodError:在步骤[archive,bat,build,catchError,checkout,deleteDir,dir,dockerFingerprintFrom,dockerFingerpri
我目前正在尝试使用jenkinsfile在jenkins中实现管道,我正在windows机器上执行一个maven项目。我正在jenkins中创建一个管道作业,我已经在我的github存储库中签入了这个文件,当我在jenkins中运行作业时,我收到了以下错误。 我的jenkinsfile: 我得到下面的错误,当我运行它通过詹金斯工作-Jenkins错误: java.lang.NoSuchMethod