UNPKG

@atomist/sdm

Version:

Atomist Software Delivery Machine SDK

58 lines 2.58 kB
"use strict"; /* * Copyright © 2019 Atomist, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.reportFailureInterpretation = void 0; const logger_1 = require("@atomist/automation-client/lib/util/logger"); const slack = require("@atomist/slack-messages"); async function reportFailureInterpretation(stepName, interpretation, fullLog, id, addressChannels, retryButton) { if (!interpretation) { if (fullLog.url) { logger_1.logger.debug("No log interpretation. Log available at: " + fullLog.url); return; } logger_1.logger.debug("No log interpretation, no log URL. Sending full log to Slack"); await addressChannels({ content: fullLog.log, fileType: "text", fileName: `${stepName}-failure-${id.sha}.log`, }); return; } await addressChannels({ text: `Failed ${stepName} of ${slack.url(`${id.url}/tree/${id.sha}`, id.sha.substr(0, 7))}`, attachments: [{ title: interpretation.message || "Failure", title_link: fullLog.url, fallback: "relevant bits", text: interpretation.relevantPart, color: "#ff5050", actions: retryButton ? [retryButton] : [], }], }); const includeFullLogByDefault = !fullLog.url; // if there is no link, include it by default const shouldIncludeFullLog = "includeFullLog" in interpretation ? interpretation.includeFullLog : includeFullLogByDefault; if (shouldIncludeFullLog) { logger_1.logger.debug("sending full log to slack. url is %s, includeFullLog is %s", fullLog.url, interpretation.includeFullLog); await addressChannels({ content: fullLog.log, fileType: "text", fileName: `${stepName}-failure-${id.sha}.log`, }); } } exports.reportFailureInterpretation = reportFailureInterpretation; //# sourceMappingURL=reportFailureInterpretation.js.map