@@ -9765,8 +9765,7 @@ function handleLogs(args, workflowHandler) {
97659765 return __awaiter(this, void 0, void 0, function* () {
97669766 try {
97679767 const workflowRunId = yield workflowHandler.getWorkflowRunId();
9768- const workflowLogsHandler = (0, workflow_logs_handler_1.logHandlerFactory)(args.workflowLogMode, args.token, workflowRunId, args.owner, args.repo);
9769- yield workflowLogsHandler.handle();
9768+ yield (0, workflow_logs_handler_1.handleWorkflowLogsPerJob)(args, workflowRunId);
97709769 }
97719770 catch (e) {
97729771 core.error(`Failed to handle logs of tirggered workflow. Cause: ${e}`);
@@ -10227,82 +10226,73 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
1022710226 });
1022810227};
1022910228Object.defineProperty(exports, "__esModule", ({ value: true }));
10230- exports.logHandlerFactory = void 0;
10229+ exports.handleWorkflowLogsPerJob = void 0;
1023110230const core = __importStar(__nccwpck_require__(2186));
1023210231const github = __importStar(__nccwpck_require__(5438));
1023310232const debug_1 = __nccwpck_require__(1417);
10234- function getWorkflowLogsPerJob(octokit, workflowRunId, owner, repo) {
10235- var _a;
10233+ function handleWorkflowLogsPerJob(args, workflowRunId) {
1023610234 return __awaiter(this, void 0, void 0, function* () {
10237- const logsPerJob = [];
10235+ const mode = args.workflowLogMode;
10236+ const token = args.token;
10237+ const owner = args.token;
10238+ const repo = args.repo;
10239+ const handler = logHandlerFactory(mode);
10240+ if (handler == null) {
10241+ return;
10242+ }
10243+ const octokit = github.getOctokit(token);
1023810244 const runId = workflowRunId;
1023910245 const response = yield octokit.rest.actions.listJobsForWorkflowRun({
1024010246 owner: owner,
1024110247 repo: repo,
1024210248 run_id: runId
1024310249 });
10244- (0, debug_1.debug)('Jobs in workflow', response);
10250+ yield handler.handleJobList( response.data.jobs );
1024510251 for (const job of response.data.jobs) {
1024610252 try {
1024710253 const jobLog = yield octokit.rest.actions.downloadJobLogsForWorkflowRun({
1024810254 owner: owner,
1024910255 repo: repo,
1025010256 job_id: job.id,
1025110257 });
10252- (0, debug_1.debug)(`Job ${job.id} log`, jobLog);
10253- logsPerJob.push({
10254- job: job,
10255- logs: (_a = jobLog.data) === null || _a === void 0 ? void 0 : _a.toString()
10256- });
10258+ yield handler.handleJobLogs(job, jobLog.data);
1025710259 }
1025810260 catch (error) {
10259- (0, debug_1.debug)('Job log download error', error);
10260- logsPerJob.push({
10261- job: job,
10262- error: error instanceof Error ? error : new Error(`${error}`)
10263- });
10261+ yield handler.handleError(job, error);
1026410262 }
1026510263 }
10266- return logsPerJob;
1026710264 });
1026810265}
10269- class NoOpLogsHandler {
10270- handle() {
10266+ exports.handleWorkflowLogsPerJob = handleWorkflowLogsPerJob;
10267+ class PrintLogsHandler {
10268+ handleJobList(jobs) {
1027110269 return __awaiter(this, void 0, void 0, function* () {
10270+ (0, debug_1.debug)('Retrieving logs for jobs in workflow', jobs);
1027210271 });
1027310272 }
10274- }
10275- class PrintLogsHandler {
10276- constructor(token, workflowRunId, owner, repo) {
10277- this.workflowRunId = workflowRunId;
10278- this.owner = owner;
10279- this.repo = repo;
10280- // Get octokit client for making API calls
10281- this.octokit = github.getOctokit(token);
10273+ handleJobLogs(job, logs) {
10274+ return __awaiter(this, void 0, void 0, function* () {
10275+ core.startGroup(`Logs of job '${job.name}'`);
10276+ core.info(escapeImportedLogs(logs));
10277+ core.endGroup();
10278+ });
1028210279 }
10283- handle( ) {
10280+ handleError(job, error ) {
1028410281 return __awaiter(this, void 0, void 0, function* () {
10285- const logsPerJob = yield getWorkflowLogsPerJob(this.octokit, this.workflowRunId, this.owner, this.repo);
10286- for (const jobLogs of logsPerJob) {
10287- core.info(`::group::Logs of job '${jobLogs.job.name}'`);
10288- if (jobLogs.logs) {
10289- core.info(jobLogs.logs);
10290- }
10291- if (jobLogs.error) {
10292- core.warning(jobLogs.error);
10293- }
10294- core.info(`::endgroup::`);
10295- }
10282+ core.warning(escapeImportedLogs(error.message));
1029610283 });
1029710284 }
1029810285}
10299- function logHandlerFactory(mode, token, workflowRunId, owner, repo ) {
10286+ function logHandlerFactory(mode) {
1030010287 switch (mode) {
10301- case 'print': return new PrintLogsHandler(token, workflowRunId, owner, repo );
10302- default: return new NoOpLogsHandler() ;
10288+ case 'print': return new PrintLogsHandler();
10289+ default: return null ;
1030310290 }
1030410291}
10305- exports.logHandlerFactory = logHandlerFactory;
10292+ function escapeImportedLogs(str) {
10293+ return str.replace(/^/mg, "| ")
10294+ .replace(/^(##\[[^\]]+\])/gm, "| $1");
10295+ }
1030610296
1030710297
1030810298/***/ }),
0 commit comments