|
|
@ -32,27 +32,55 @@ async function getBlacksmithHttpClient(): Promise<AxiosInstance> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
async function reportBuildCompleted() {
|
|
|
|
async function reportBuildCompleted() {
|
|
|
|
try {
|
|
|
|
let retries = 0;
|
|
|
|
const builderLaunchTime = stateHelper.blacksmithBuilderLaunchTime;
|
|
|
|
const maxRetries = 3;
|
|
|
|
const client = await getBlacksmithHttpClient();
|
|
|
|
while (retries < maxRetries) {
|
|
|
|
client.post(`/${stateHelper.blacksmithBuildTaskId}/complete`, {
|
|
|
|
try {
|
|
|
|
builder_launch_time: builderLaunchTime
|
|
|
|
const builderLaunchTime = stateHelper.blacksmithBuilderLaunchTime;
|
|
|
|
});
|
|
|
|
const client = await getBlacksmithHttpClient();
|
|
|
|
} catch (error) {
|
|
|
|
await client.post(`/${stateHelper.blacksmithBuildTaskId}/complete`, {
|
|
|
|
core.warning('Error completing Blacksmith build:', error);
|
|
|
|
builder_launch_time: builderLaunchTime
|
|
|
|
throw error;
|
|
|
|
});
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
if (error.response && error.response.status < 500) {
|
|
|
|
|
|
|
|
core.warning('Error completing Blacksmith build:', error);
|
|
|
|
|
|
|
|
throw error;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (retries === maxRetries - 1) {
|
|
|
|
|
|
|
|
core.warning('Error completing Blacksmith build:', error);
|
|
|
|
|
|
|
|
throw error;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
retries++;
|
|
|
|
|
|
|
|
core.warning(`Error completing Blacksmith build, retrying (${retries}/${maxRetries})...`);
|
|
|
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 200));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
async function reportBuildAbandoned(taskId: string) {
|
|
|
|
async function reportBuildAbandoned(taskId: string) {
|
|
|
|
try {
|
|
|
|
let retries = 0;
|
|
|
|
const client = await getBlacksmithHttpClient();
|
|
|
|
const maxRetries = 3;
|
|
|
|
const abandonURL = `/${taskId}/abandon`;
|
|
|
|
while (retries < maxRetries) {
|
|
|
|
const response = await client.post(abandonURL);
|
|
|
|
try {
|
|
|
|
core.info(`Docker build abandoned, tearing down Blacksmith builder for ${stateHelper.blacksmithBuildTaskId}: ${JSON.stringify(response.data)}`);
|
|
|
|
const client = await getBlacksmithHttpClient();
|
|
|
|
} catch (error) {
|
|
|
|
const abandonURL = `/${taskId}/abandon`;
|
|
|
|
core.warning('Error abandoning Blacksmith build:', error);
|
|
|
|
const response = await client.post(abandonURL);
|
|
|
|
throw error;
|
|
|
|
core.info(`Docker build abandoned, tearing down Blacksmith builder for ${stateHelper.blacksmithBuildTaskId}: ${JSON.stringify(response.data)}`);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
if (error.response && error.response.status < 500) {
|
|
|
|
|
|
|
|
core.warning('Error abandoning Blacksmith build:', error);
|
|
|
|
|
|
|
|
throw error;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (retries === maxRetries - 1) {
|
|
|
|
|
|
|
|
core.warning('Error abandoning Blacksmith build:', error);
|
|
|
|
|
|
|
|
throw error;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
retries++;
|
|
|
|
|
|
|
|
core.warning(`Error abandoning Blacksmith build, retrying (${retries}/${maxRetries})...`);
|
|
|
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 200));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|