pull/235/head
mdugdale 2021-04-07 21:38:49 +01:00
parent 75820962d6
commit 59939c2324
3 changed files with 14 additions and 10 deletions

14
dist/index.js vendored
View File

@ -629,17 +629,17 @@ class AWS {
});
}
static streamLogsUntilTaskStops(ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) {
var _a, _b;
var _a;
return __awaiter(this, void 0, void 0, function* () {
// watching logs
const kinesis = new SDK.Kinesis();
const getTaskData = () => __awaiter(this, void 0, void 0, function* () {
var _c;
var _b;
const tasks = yield ECS.describeTasks({
cluster: clusterName,
tasks: [taskArn],
}).promise();
return (_c = tasks.tasks) === null || _c === void 0 ? void 0 : _c[0];
return (_b = tasks.tasks) === null || _b === void 0 ? void 0 : _b[0];
});
const stream = yield kinesis
.describeStream({
@ -658,13 +658,15 @@ class AWS {
const logBaseUrl = `https://${SDK.config.region}.console.aws.amazon.com/cloudwatch/home?region=${SDK.config.region}#logsV2:log-groups/log-group/${taskDef.taskDefStackName}`;
core.info(`You can also see the logs at AWS Cloud Watch: ${logBaseUrl}`);
let readingLogs = true;
const timestampReady = (t1, t2, tlimit) => {
return t2 - t1 / 1000 < tlimit;
};
while (readingLogs) {
yield new Promise((resolve) => setTimeout(resolve, 1500));
const taskData = yield getTaskData();
if ((taskData === null || taskData === void 0 ? void 0 : taskData.lastStatus) !== 'RUNNING' && ((_b = taskData === null || taskData === void 0 ? void 0 : taskData.containers) === null || _b === void 0 ? void 0 : _b[0].exitCode) !== 0) {
if ((taskData === null || taskData === void 0 ? void 0 : taskData.lastStatus) !== 'RUNNING' && timestampReady(taskData === null || taskData === void 0 ? void 0 : taskData.stoppedAt, Date.now(), 30)) {
core.info('Task status is not RUNNING for 30 seconds, last query for logs');
readingLogs = false;
core.info('Task status is not RUNNING waiting 45 seconds for end of logs.');
yield new Promise((resolve) => setTimeout(resolve, 45000));
}
const records = yield kinesis
.getRecords({

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -535,13 +535,15 @@ class AWS {
core.info(`You can also see the logs at AWS Cloud Watch: ${logBaseUrl}`);
let readingLogs = true;
const timestampReady = (t1, t2, tlimit) => {
return t2 - t1 / 1000 < tlimit;
};
while (readingLogs) {
await new Promise((resolve) => setTimeout(resolve, 1500));
const taskData = await getTaskData();
if (taskData?.lastStatus !== 'RUNNING' && taskData?.containers?.[0].exitCode !== 0) {
if (taskData?.lastStatus !== 'RUNNING' && timestampReady(taskData?.stoppedAt, Date.now(), 30)) {
core.info('Task status is not RUNNING for 30 seconds, last query for logs');
readingLogs = false;
core.info('Task status is not RUNNING waiting 45 seconds for end of logs.');
await new Promise((resolve) => setTimeout(resolve, 45000));
}
const records = await kinesis
.getRecords({