【发布时间】:2021-09-12 00:33:42
【问题描述】:
我有一个全局日志键值数据过滤器: 使用此模式:^RUNDECK:DATA:(.+?)\s*=\s*(.+)$
Step 1. 输出下一步需要的字符串 echo "RUNDECK:DATA:repo=repository1"
第 2 步。使用键/值数据构建全局变量。 价值:${data.repo*} 组: 出口 名称:回购
作业完成后,它将发送 Microsoft Teams 通知,但没有发送任何通知。
这是 groovy 脚本。我将工作流全局变量用于存储库字段。
存储库:${execution.export.repo}
/opt/rundeck-plugins/microsoftTeamsIncomingWebhook.groovy
import com.dtolabs.rundeck.plugins.notification.NotificationPlugin;
import groovy.text.SimpleTemplateEngine
rundeckPlugin(NotificationPlugin){
title="Microsoft Teams Incoming Webhook"
description="Customized webhook notification script"
configuration{
webhook_url title:"MS Teams Incoming Webhook URL"
}
def ms_teams_notification = {
command = [ 'bash', '-c', "curl -X POST ${configuration.webhook_url} -d '{ \"title\": \"${execution.job.name}\", \"text\": \"[View job in Rundeck](${execution.href})\n\n \n\n **Status**: **${execution.status}** \n\n **Initiated by**: ${execution.user} \n\n **Repository**: ${execution.export.repo}\"}'" ]
def proc = command.execute()
proc.waitForProcessOutput(System.out,System.err)
proc.exitValue()==0
}
onsuccess ms_teams_notification
onfailure ms_teams_notification
}
使用 Rundeck 2.10.8-1
【问题讨论】: