Skip to content

Commit a80ace5

Browse files
committed
Add alert message for failed Actions workflow
This also changes the failure reason alert component to remove the logs button since it's not used by any failure reason. Instead, a link is added into the message for a failed Actions workflow using which the Actions workflow run may be opened.
1 parent b333a16 commit a80ace5

File tree

3 files changed

+43
-12
lines changed

3 files changed

+43
-12
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import React from 'react';
2+
3+
import { ComponentMeta, ComponentStory } from '@storybook/react';
4+
import { VariantAnalysisFailureReason } from '../../remote-queries/shared/variant-analysis';
5+
import { FailureReasonAlert } from '../../view/variant-analysis/FailureReasonAlert';
6+
7+
export default {
8+
title: 'Variant Analysis/Failure reason alert',
9+
component: FailureReasonAlert,
10+
} as ComponentMeta<typeof FailureReasonAlert>;
11+
12+
const Template: ComponentStory<typeof FailureReasonAlert> = (args) => (
13+
<FailureReasonAlert {...args} />
14+
);
15+
16+
export const NoReposQueried = Template.bind({});
17+
NoReposQueried.args = {
18+
failureReason: VariantAnalysisFailureReason.NoReposQueried,
19+
};
20+
21+
export const ActionsWorkflowRunFailed = Template.bind({});
22+
ActionsWorkflowRunFailed.args = {
23+
failureReason: VariantAnalysisFailureReason.ActionsWorkflowRunFailed,
24+
};
25+
26+
export const InternalError = Template.bind({});
27+
InternalError.args = {
28+
failureReason: VariantAnalysisFailureReason.InternalError,
29+
};
Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,50 @@
11
import * as React from 'react';
2-
import { VSCodeButton } from '@vscode/webview-ui-toolkit/react';
2+
import { ReactNode } from 'react';
3+
import { VSCodeLink } from '@vscode/webview-ui-toolkit/react';
34
import { Alert } from '../common';
45
import { vscode } from '../vscode-api';
56
import { VariantAnalysisFailureReason } from '../../remote-queries/shared/variant-analysis';
67

78
type Props = {
89
failureReason: VariantAnalysisFailureReason;
9-
showLogsButton: boolean;
10+
};
11+
12+
const openLogs = () => {
13+
vscode.postMessage({
14+
t: 'openLogs',
15+
});
1016
};
1117

1218
const getTitle = (failureReason: VariantAnalysisFailureReason): string => {
1319
switch (failureReason) {
1420
case VariantAnalysisFailureReason.NoReposQueried:
1521
return 'No repositories to analyze';
22+
case VariantAnalysisFailureReason.ActionsWorkflowRunFailed:
23+
return 'GitHub Actions workflow run failed';
1624
case VariantAnalysisFailureReason.InternalError:
1725
return 'Something unexpected happened';
1826
}
1927
};
2028

21-
const getMessage = (failureReason: VariantAnalysisFailureReason): string => {
29+
const getMessage = (failureReason: VariantAnalysisFailureReason): ReactNode => {
2230
switch (failureReason) {
2331
case VariantAnalysisFailureReason.NoReposQueried:
2432
return 'No repositories available after processing. No repositories were analyzed.';
33+
case VariantAnalysisFailureReason.ActionsWorkflowRunFailed:
34+
return <>The GitHub Actions workflow run has failed. <VSCodeLink onClick={openLogs}>Check logs</VSCodeLink> and try running this query again.</>;
2535
case VariantAnalysisFailureReason.InternalError:
2636
return 'An internal error occurred while running this variant analysis. Please try again later.';
2737
}
2838
};
2939

30-
const openLogs = () => {
31-
vscode.postMessage({
32-
t: 'openLogs',
33-
});
34-
};
35-
3640
export const FailureReasonAlert = ({
3741
failureReason,
38-
showLogsButton,
3942
}: Props) => {
4043
return (
4144
<Alert
4245
type="error"
4346
title={getTitle(failureReason)}
4447
message={getMessage(failureReason)}
45-
actions={showLogsButton && <VSCodeButton appearance="secondary" onClick={openLogs}>View logs</VSCodeButton>}
4648
/>
4749
);
4850
};

extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export const VariantAnalysisOutcomePanels = ({
6565
/>
6666
)}
6767
{variantAnalysis.status === VariantAnalysisStatus.Failed && variantAnalysis.failureReason && (
68-
<FailureReasonAlert failureReason={variantAnalysis.failureReason} showLogsButton={!!variantAnalysis.actionsWorkflowRunId} />
68+
<FailureReasonAlert failureReason={variantAnalysis.failureReason} />
6969
)}
7070
{overLimitRepositoryCount > 0 && (
7171
<Alert

0 commit comments

Comments
 (0)