내 Jenkins 단계에서 java jar 파일 (java -Dfile.encoding = UTF-8 -jar C : \ Test1 \ Test.jar C : \ Test \ test)을 실행하는 Windows 배치 명령이 있습니다. .log)이며 출력은 String 값입니다 (확인 된 Jenkins 콘솔에서 문자열이 인쇄됩니다). 어떻게이 문자열 컨텐츠를 사용하고 편집 가능한 이메일 컨텐츠 본문에 삽입하여이 컨텐츠를 전자 메일로 보낼 수 있습니까? 젠킨스 콘솔 전체가이 문자열 만 전자 메일로 보내길 원치 않습니다. 스크립트 실행 후 문자열을 환경 변수로 설정해야한다고 가정합니다. EnvInjPlugin을 내 시나리오에 정확히 사용할 수 있다면 정확히 사용할 수 있을지 모르겠습니다.젠킨스 편집 가능한 이메일 내용 사용자 정의
0
A
답변
0
사전 보내기 스크립트를 사용해보십시오. "이 임의의 정수는 이메일 내용에 있어야 : 3,432,805"
는 예를 들어, 당신은 로그에 같은 문자열이 을하고 내용을 이메일로 무작위로 생성 된 정수를 추가 할.
- 당신이 원하는대로와 기본 콘텐츠을 설정하지만, 대체 몇 가지 값을 추가합니다. 예를 들면 :
이 build.log에서 임의 INT입니다 : TO_REPLACE
다음 이 스크립트 사전 보내 "고급 설정"버튼을 클릭 추가 :
String addThisStringToContent = ""; build.getLog(1000).each() { line -> java.util.regex.Pattern p = java.util.regex.Pattern.compile("random\\sinteger.+\\:\\s(\\d+)"); java.util.regex.Matcher m = p.matcher(line); if (m.find()) { addThisStringToContent = m.group(1); } } if (addThisStringToContent == "") { logger.println("Proper string not found. Email content has not been updated."); } else { String contentToSet = ((javax.mail.Multipart)msg.getContent()).getBodyPart(0).getContent().toString().replace("TO_REPLACE", addThisStringToContent); msg.setContent(contentToSet, "text/plain"); }
여기서 :
build.getLog(1000)
- 빌드 출력의 마지막 1000 행을 검색합니다.Pattern.compile("random\\sinteger.+\\:\\s(\\d+)")
- 콘텐츠 유형String contentToSet = ((javax.mail.Multipart)msg.getContent()).getBodyPart(0).getContent().toString().replace("TO_REPLACE", addThisStringToContent);
- - 정규식은 적절한 문자열"text/plain"
를 찾을 수
그것은 당신을 도울 것입니다 희망 당신의 값을 문자열 TO_REPLACE을 대체합니다.