我最近在我的开发机器上安装了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)
}
有什么想法吗?
答案 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