Skip to content

Commit 6bbccbb

Browse files
committed
fix parselog
1 parent 7a5c7c8 commit 6bbccbb

File tree

1 file changed

+45
-59
lines changed

1 file changed

+45
-59
lines changed

src/cml.js

Lines changed: 45 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -261,73 +261,59 @@ class CML {
261261
let { data } = opts;
262262
if (!data) return;
263263

264+
data = data.toString('utf8');
265+
264266
const date = new Date();
267+
let log = {
268+
level: 'info',
269+
date: date.toISOString(),
270+
repo: this.repo
271+
};
265272

266-
try {
267-
data = data.toString('utf8');
268-
269-
let log = {
270-
level: 'info',
271-
date: date.toISOString(),
272-
repo: this.repo
273-
};
274-
275-
if (this.driver === GITHUB) {
276-
const id = 'gh';
277-
if (data.includes('Running job')) {
278-
log.job = id;
279-
log.status = 'job_started';
280-
} else if (data.includes('completed with result')) {
281-
log.job = id;
282-
log.status = 'job_ended';
283-
log.success = data.includes('Succeeded');
284-
} else if (data.includes('Listening for Jobs')) {
285-
log.status = 'ready';
286-
}
287-
288-
const [, message] = data.split(/[A-Z]:\s/);
289-
return { ...log, message: (message || data).replace(/\n/g, '') };
273+
if (this.driver === GITHUB) {
274+
const id = 'gh';
275+
if (data.includes('Running job')) {
276+
log.job = id;
277+
log.status = 'job_started';
278+
} else if (data.includes('completed with result')) {
279+
log.job = id;
280+
log.status = 'job_ended';
281+
log.success = data.includes('Succeeded');
282+
} else if (data.includes('Listening for Jobs')) {
283+
log.status = 'ready';
290284
}
285+
}
291286

292-
if (this.driver === GITLAB) {
293-
const { msg, job, duration_s: duration } = JSON.parse(data);
294-
log = { ...log, job };
295-
296-
if (msg.endsWith('received')) {
297-
log.status = 'job_started';
298-
} else if (duration) {
299-
log.status = 'job_ended';
300-
log.success = msg.includes('Job succeeded');
301-
} else if (msg.includes('Starting runner for')) {
302-
log.status = 'ready';
303-
}
304-
return log;
287+
if (this.driver === GITLAB) {
288+
const { msg, job, duration_s: duration } = JSON.parse(data);
289+
log = { ...log, job };
290+
291+
if (msg.endsWith('received')) {
292+
log.status = 'job_started';
293+
} else if (duration) {
294+
log.status = 'job_ended';
295+
log.success = msg.includes('Job succeeded');
296+
} else if (msg.includes('Starting runner for')) {
297+
log.status = 'ready';
305298
}
299+
}
306300

307-
if (this.driver === BB) {
308-
const id = 'bb';
309-
if (data.includes('Getting step StepId{accountUuid={')) {
310-
log.job = id;
311-
log.status = 'job_started';
312-
} else if (
313-
data.includes('Completing step with result Result{status=')
314-
) {
315-
log.job = id;
316-
log.status = 'job_ended';
317-
log.success = data.includes('status=PASSED');
318-
} else if (data.includes('Updating runner status to "ONLINE"')) {
319-
log.status = 'ready';
320-
}
321-
322-
log.level = log.success ? 'info' : 'error';
323-
return log.status ? log : null;
301+
if (this.driver === BB) {
302+
const id = 'bb';
303+
if (data.includes('Getting step StepId{accountUuid={')) {
304+
log.job = id;
305+
log.status = 'job_started';
306+
} else if (data.includes('Completing step with result Result{status=')) {
307+
log.job = id;
308+
log.status = 'job_ended';
309+
log.success = data.includes('status=PASSED');
310+
} else if (data.includes('Updating runner status to "ONLINE"')) {
311+
log.status = 'ready';
324312
}
325-
} catch (err) {
326-
winston.warn(`Failed parsing log: ${err.message}`);
327-
winston.warn(
328-
`Original log bytes, as Base64: ${Buffer.from(data).toString('base64')}`
329-
);
330313
}
314+
315+
log.level = log.success ? 'info' : 'error';
316+
return log.status ? log : null;
331317
}
332318

333319
async startRunner(opts = {}) {

0 commit comments

Comments
 (0)