Add more granular exception handling

This commit is contained in:
Simon Engledew 2021-01-22 10:58:34 +00:00
parent 8a9922df92
commit 6be1f5ce0e
No known key found for this signature in database
GPG key ID: 84302E7B02FE8BCE
3 changed files with 41 additions and 25 deletions

31
lib/actions-util.js generated
View file

@ -263,22 +263,31 @@ function getWorkflowErrors(doc) {
}
exports.getWorkflowErrors = getWorkflowErrors;
async function validateWorkflow() {
let workflow;
try {
const workflow = await getWorkflow();
try {
const workflowErrors = getWorkflowErrors(workflow);
if (workflowErrors.length > 0) {
core.warning(formatWorkflowErrors(workflowErrors));
}
return `warning: ${formatWorkflowCause(workflowErrors)}`;
}
catch (e) {
return `error: getWorkflowErrors() failed: ${e.toString()}`;
}
workflow = await getWorkflow();
}
catch (e) {
return `error: getWorkflow() failed: ${e.toString()}`;
}
let workflowErrors;
try {
workflowErrors = getWorkflowErrors(workflow);
}
catch (e) {
return `error: getWorkflowErrors() failed: ${e.toString()}`;
}
if (workflowErrors.length > 0) {
let message;
try {
message = formatWorkflowErrors(workflowErrors);
}
catch (e) {
return `error: formatWorkflowErrors() failed: ${e.toString()}`;
}
core.warning(message);
}
return `warning: ${formatWorkflowCause(workflowErrors)}`;
}
exports.validateWorkflow = validateWorkflow;
function formatWorkflowErrors(errors) {

File diff suppressed because one or more lines are too long

View file

@ -317,23 +317,30 @@ export function getWorkflowErrors(doc: Workflow): CodedError[] {
}
export async function validateWorkflow(): Promise<undefined | string> {
let workflow: Workflow;
try {
const workflow = await getWorkflow();
try {
const workflowErrors = getWorkflowErrors(workflow);
if (workflowErrors.length > 0) {
core.warning(formatWorkflowErrors(workflowErrors));
}
return `warning: ${formatWorkflowCause(workflowErrors)}`;
} catch (e) {
return `error: getWorkflowErrors() failed: ${e.toString()}`;
}
workflow = await getWorkflow();
} catch (e) {
return `error: getWorkflow() failed: ${e.toString()}`;
}
let workflowErrors: CodedError[];
try {
workflowErrors = getWorkflowErrors(workflow);
} catch (e) {
return `error: getWorkflowErrors() failed: ${e.toString()}`;
}
if (workflowErrors.length > 0) {
let message: string;
try {
message = formatWorkflowErrors(workflowErrors);
} catch (e) {
return `error: formatWorkflowErrors() failed: ${e.toString()}`;
}
core.warning(message);
}
return `warning: ${formatWorkflowCause(workflowErrors)}`;
}
export function formatWorkflowErrors(errors: CodedError[]): string {