cleanup
parent
981a8eedf2
commit
75820962d6
|
|
@ -229,7 +229,7 @@ class AWS {
|
||||||
var _a;
|
var _a;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const nanoid = nanoid_1.customAlphabet(alphabet, 9);
|
const nanoid = nanoid_1.customAlphabet(alphabet, 4);
|
||||||
const buildUid = `${process.env.GITHUB_RUN_NUMBER}-${buildParameters.platform
|
const buildUid = `${process.env.GITHUB_RUN_NUMBER}-${buildParameters.platform
|
||||||
.replace('Standalone', '')
|
.replace('Standalone', '')
|
||||||
.replace('standalone', '')}-${nanoid()}`;
|
.replace('standalone', '')}-${nanoid()}`;
|
||||||
|
|
@ -629,16 +629,17 @@ class AWS {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
static streamLogsUntilTaskStops(ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) {
|
static streamLogsUntilTaskStops(ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) {
|
||||||
|
var _a, _b;
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
// watching logs
|
// watching logs
|
||||||
const kinesis = new SDK.Kinesis();
|
const kinesis = new SDK.Kinesis();
|
||||||
const getTaskStatus = () => __awaiter(this, void 0, void 0, function* () {
|
const getTaskData = () => __awaiter(this, void 0, void 0, function* () {
|
||||||
var _a;
|
var _c;
|
||||||
const tasks = yield ECS.describeTasks({
|
const tasks = yield ECS.describeTasks({
|
||||||
cluster: clusterName,
|
cluster: clusterName,
|
||||||
tasks: [taskArn],
|
tasks: [taskArn],
|
||||||
}).promise();
|
}).promise();
|
||||||
return (_a = tasks.tasks) === null || _a === void 0 ? void 0 : _a[0].lastStatus;
|
return (_c = tasks.tasks) === null || _c === void 0 ? void 0 : _c[0];
|
||||||
});
|
});
|
||||||
const stream = yield kinesis
|
const stream = yield kinesis
|
||||||
.describeStream({
|
.describeStream({
|
||||||
|
|
@ -653,13 +654,14 @@ class AWS {
|
||||||
})
|
})
|
||||||
.promise()).ShardIterator || '';
|
.promise()).ShardIterator || '';
|
||||||
yield CF.waitFor('stackCreateComplete', { StackName: taskDef.taskDefStackNameTTL }).promise();
|
yield CF.waitFor('stackCreateComplete', { StackName: taskDef.taskDefStackNameTTL }).promise();
|
||||||
core.info(`Task status is ${yield getTaskStatus()}`);
|
core.info(`Task status is ${(_a = (yield getTaskData())) === null || _a === void 0 ? void 0 : _a.lastStatus}`);
|
||||||
const logBaseUrl = `https://${SDK.config.region}.console.aws.amazon.com/cloudwatch/home?region=${SDK.config.region}#logsV2:log-groups/log-group/${taskDef.taskDefStackName}`;
|
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}`);
|
core.info(`You can also see the logs at AWS Cloud Watch: ${logBaseUrl}`);
|
||||||
let readingLogs = true;
|
let readingLogs = true;
|
||||||
while (readingLogs) {
|
while (readingLogs) {
|
||||||
yield new Promise((resolve) => setTimeout(resolve, 1500));
|
yield new Promise((resolve) => setTimeout(resolve, 1500));
|
||||||
if ((yield getTaskStatus()) !== 'RUNNING') {
|
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) {
|
||||||
readingLogs = false;
|
readingLogs = false;
|
||||||
core.info('Task status is not RUNNING waiting 45 seconds for end of logs.');
|
core.info('Task status is not RUNNING waiting 45 seconds for end of logs.');
|
||||||
yield new Promise((resolve) => setTimeout(resolve, 45000));
|
yield new Promise((resolve) => setTimeout(resolve, 45000));
|
||||||
|
|
@ -675,11 +677,13 @@ class AWS {
|
||||||
const json = JSON.parse(zlib.gunzipSync(Buffer.from(records.Records[index].Data, 'base64')).toString('utf8'));
|
const json = JSON.parse(zlib.gunzipSync(Buffer.from(records.Records[index].Data, 'base64')).toString('utf8'));
|
||||||
if (json.messageType === 'DATA_MESSAGE') {
|
if (json.messageType === 'DATA_MESSAGE') {
|
||||||
for (let logEventsIndex = 0; logEventsIndex < json.logEvents.length; logEventsIndex++) {
|
for (let logEventsIndex = 0; logEventsIndex < json.logEvents.length; logEventsIndex++) {
|
||||||
core.info(json.logEvents[logEventsIndex].message);
|
|
||||||
if (json.logEvents[logEventsIndex].message.includes(taskDef.logid)) {
|
if (json.logEvents[logEventsIndex].message.includes(taskDef.logid)) {
|
||||||
core.info('End of task logs');
|
core.info('End of task logs');
|
||||||
readingLogs = false;
|
readingLogs = false;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
core.info(json.logEvents[logEventsIndex].message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -11,7 +11,7 @@ const cacheDirectoryName = 'cache';
|
||||||
class AWS {
|
class AWS {
|
||||||
static async runBuildJob(buildParameters, baseImage) {
|
static async runBuildJob(buildParameters, baseImage) {
|
||||||
try {
|
try {
|
||||||
const nanoid = customAlphabet(alphabet, 9);
|
const nanoid = customAlphabet(alphabet, 4);
|
||||||
const buildUid = `${process.env.GITHUB_RUN_NUMBER}-${buildParameters.platform
|
const buildUid = `${process.env.GITHUB_RUN_NUMBER}-${buildParameters.platform
|
||||||
.replace('Standalone', '')
|
.replace('Standalone', '')
|
||||||
.replace('standalone', '')}-${nanoid()}`;
|
.replace('standalone', '')}-${nanoid()}`;
|
||||||
|
|
@ -498,16 +498,16 @@ class AWS {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static async streamLogsUntilTaskStops(ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) {
|
static async streamLogsUntilTaskStops(ECS: AWS.ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) {
|
||||||
// watching logs
|
// watching logs
|
||||||
const kinesis = new SDK.Kinesis();
|
const kinesis = new SDK.Kinesis();
|
||||||
|
|
||||||
const getTaskStatus = async () => {
|
const getTaskData = async () => {
|
||||||
const tasks = await ECS.describeTasks({
|
const tasks = await ECS.describeTasks({
|
||||||
cluster: clusterName,
|
cluster: clusterName,
|
||||||
tasks: [taskArn],
|
tasks: [taskArn],
|
||||||
}).promise();
|
}).promise();
|
||||||
return tasks.tasks?.[0].lastStatus;
|
return tasks.tasks?.[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
const stream = await kinesis
|
const stream = await kinesis
|
||||||
|
|
@ -529,7 +529,7 @@ class AWS {
|
||||||
|
|
||||||
await CF.waitFor('stackCreateComplete', { StackName: taskDef.taskDefStackNameTTL }).promise();
|
await CF.waitFor('stackCreateComplete', { StackName: taskDef.taskDefStackNameTTL }).promise();
|
||||||
|
|
||||||
core.info(`Task status is ${await getTaskStatus()}`);
|
core.info(`Task status is ${(await getTaskData())?.lastStatus}`);
|
||||||
|
|
||||||
const logBaseUrl = `https://${SDK.config.region}.console.aws.amazon.com/cloudwatch/home?region=${SDK.config.region}#logsV2:log-groups/log-group/${taskDef.taskDefStackName}`;
|
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}`);
|
core.info(`You can also see the logs at AWS Cloud Watch: ${logBaseUrl}`);
|
||||||
|
|
@ -537,7 +537,8 @@ class AWS {
|
||||||
let readingLogs = true;
|
let readingLogs = true;
|
||||||
while (readingLogs) {
|
while (readingLogs) {
|
||||||
await new Promise((resolve) => setTimeout(resolve, 1500));
|
await new Promise((resolve) => setTimeout(resolve, 1500));
|
||||||
if ((await getTaskStatus()) !== 'RUNNING') {
|
const taskData = await getTaskData();
|
||||||
|
if (taskData?.lastStatus !== 'RUNNING' && taskData?.containers?.[0].exitCode !== 0) {
|
||||||
readingLogs = false;
|
readingLogs = false;
|
||||||
core.info('Task status is not RUNNING waiting 45 seconds for end of logs.');
|
core.info('Task status is not RUNNING waiting 45 seconds for end of logs.');
|
||||||
await new Promise((resolve) => setTimeout(resolve, 45000));
|
await new Promise((resolve) => setTimeout(resolve, 45000));
|
||||||
|
|
@ -555,10 +556,11 @@ class AWS {
|
||||||
);
|
);
|
||||||
if (json.messageType === 'DATA_MESSAGE') {
|
if (json.messageType === 'DATA_MESSAGE') {
|
||||||
for (let logEventsIndex = 0; logEventsIndex < json.logEvents.length; logEventsIndex++) {
|
for (let logEventsIndex = 0; logEventsIndex < json.logEvents.length; logEventsIndex++) {
|
||||||
core.info(json.logEvents[logEventsIndex].message);
|
|
||||||
if (json.logEvents[logEventsIndex].message.includes(taskDef.logid)) {
|
if (json.logEvents[logEventsIndex].message.includes(taskDef.logid)) {
|
||||||
core.info('End of task logs');
|
core.info('End of task logs');
|
||||||
readingLogs = false;
|
readingLogs = false;
|
||||||
|
} else {
|
||||||
|
core.info(json.logEvents[logEventsIndex].message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue