无法将Jenkins配置为电子邮件构建结果(使用gmail)

时间:2017-09-03 22:01:55

标签: android email jenkins

我最近在我的开发机器上安装了Jenkins,以帮助我了解持续集成/交付的工作原理。

我有一个基本的Android任务设置,可以构建我的应用程序,然后报告lint,PMD,Checkstyle,Findbugs和JUnit(业务逻辑)测试结果。

我希望Jenkins给我发送一封包含构建状态的电子邮件(让我们开始简单,除了&#34之外不需要任何其他信息;嘿,构建结束了,这里发生了什么:构建失败/构建成功"等。)。

我没有自己的电子邮件服务器/ smtp服务器/等,所以我想尽可能使用Gmail。

我查看了很多文档和其他stackoverflow帖子,我看到以下是电子邮件通知部分中建议的方法:

const diffDuration: moment.Duration = moment.duration(moment('2017-09-04 12:55').diff(moment('2017-09-02 13:26')));
setDiffTimeString(diffDuration);

function setDiffTimeString(diffDuration: moment.Duration) {
  const str = [];
  diffDuration.years() > 0 ? str.push(`${diffDuration.years()} year(s)`) : null;
  diffDuration.months() > 0 ? str.push(`${diffDuration.months()} month(s)`) : null;
  diffDuration.days() > 0 ? str.push(`${diffDuration.days()} day(s)`) : null;
  diffDuration.hours() > 0 ? str.push(`${diffDuration.hours()} hour(s)`) : null;
  diffDuration.minutes() > 0 ? str.push(`${diffDuration.minutes()} minute(s)`) : null;
  console.log(str.join(', '));
} 
// output: 1 day(s), 23 hour(s), 29 minute(s)

此外,在我的Gmail帐户中,我启用了安全性较低的应用程序来连接它或诸如此类的东西,这是启用的,我没有两个因素auth / etc。上。

当我测试此配置时,我收到以下错误:

无法发送电子邮件

function getGmail() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var threads = GmailApp.search('IMPORTANT1', 0, 10);

  for (var i = 0; i < threads.length; i++) {
    var messages = GmailApp.getMessagesForThread(threads[i]);
  for (var j = 0; j < messages.length; j++) {
    var msg=messages[j].getPlainBody();
    var msg=msg.trim()
  }
}
 result1(msg)
  }
function result1(range) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName("Sheet1")
  var lr=sheet1.getLastRow()
  var output=[]
  var line=range.split("\n")
  for(j=0;j<line.length;j++){
     output.push(line[j].split(" "))
  }
  sheet1.getRange(lr+1, 1, output.length, output[0].length).setValues(output)
 }

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

日志文件的错误显示错误的证书路径。您必须将证书从gmail导入Jenkins的TrustStore。请参阅this文章,了解如何导入它。

我在Linux发行版下运行Jenkins,所以我不确定,你的问题究竟是什么。我认为你没有使用正确的JAVA路径以第一种方式导入它。您的安装文件夹中有一个文件“jenkins.xml”,其中包含所有内容。也许在安装Windows服务时出现了问题,或者您将使用过的JVM更改为另一个。

当您尝试将TrustStore设置为绝对路径时,例如在注释“-Djavax.net.ssl.trustStore =”C:\ Program Files \ java \ jre1.8.0_141 \ lib \ security \ cacerts“中,您将确保使用存储证书的商店。

如果您在jenkins上导航到此页面,您将获得更多信息,您正在使用哪个Java版本或Java参数。 http://localhost:8080/systemInfo