@@ -14,7 +14,10 @@ import {
1414 ListUtilizationMetadataInfoAPIResponse ,
1515 UtilizationMetadataInfo ,
1616} from "lib/utilization/types" ;
17- import { CommitApiResponse } from "pages/api/[repoOwner]/[repoName]/commit/[sha]" ;
17+ import {
18+ CommitApiResponse ,
19+ WorkflowRunInfo ,
20+ } from "pages/api/[repoOwner]/[repoName]/commit/[sha]" ;
1821import React , { useEffect , useState } from "react" ;
1922import { FaInfoCircle } from "react-icons/fa" ;
2023import useSWR from "swr" ;
@@ -154,18 +157,18 @@ export default function WorkflowBox({
154157 jobs : JobData [ ] ;
155158 unstableIssues : IssueData [ ] ;
156159 wide : boolean ;
157- allWorkflowIds : number [ ] ;
160+ allWorkflowIds : [ WorkflowRunInfo ] ;
158161 setWide : any ;
159162 repoFullName : string ;
160163} ) {
161164 const [ selectedWorkflowId , setSelectedWorkflowId ] = useState <
162- string | undefined
165+ WorkflowRunInfo | undefined
163166 > ( undefined ) ;
164- const workflowId = selectedWorkflowId || jobs [ 0 ] . workflowId ;
167+ const workflowId = selectedWorkflowId ?. id || jobs [ 0 ] . workflowId ;
165168
166169 const { data : jobsFromSelectedWorkflowId } = useSWR < CommitApiResponse > (
167170 selectedWorkflowId &&
168- `/api/${ repoFullName } /commit/${ jobs [ 0 ] . sha } ?workflowId=${ selectedWorkflowId } ` ,
171+ `/api/${ repoFullName } /commit/${ jobs [ 0 ] . sha } ?workflowId=${ selectedWorkflowId . id } &runAttempt= ${ selectedWorkflowId . attempt } ` ,
169172 fetcher
170173 ) ;
171174
@@ -180,7 +183,7 @@ export default function WorkflowBox({
180183
181184 const anchorName = encodeURIComponent ( workflowName . toLowerCase ( ) ) ;
182185
183- const { utilMetadataList } = useUtilMetadata ( workflowId ) ;
186+ const { utilMetadataList } = useUtilMetadata ( workflowId ?. toString ( ) ) ;
184187 const groupUtilMetadataList = groupMetadataByJobId ( utilMetadataList ) ;
185188
186189 const { artifacts, error } = useArtifacts ( jobs . map ( ( job ) => job . workflowId ) ) ;
@@ -219,20 +222,30 @@ export default function WorkflowBox({
219222 < Typography fontWeight = "bold" paddingBottom = { 2 } >
220223 Job Status
221224 </ Typography >
222- </ Stack >
225+ </ Stack > { " " }
223226 < Stack direction = "column" spacing = { 1 } >
224227 < Stack direction = "row" spacing = { 1 } >
225228 < select
226- value = { selectedWorkflowId }
229+ value = {
230+ selectedWorkflowId
231+ ? `${ selectedWorkflowId ?. id } ${ selectedWorkflowId ?. attempt } `
232+ : ""
233+ }
227234 onChange = { ( e ) => {
228- setSelectedWorkflowId ( e . target . value ) ;
235+ const split = e . target . value . split ( " " ) ;
236+ setSelectedWorkflowId ( {
237+ id : parseInt ( split [ 0 ] ) ,
238+ attempt : parseInt ( split [ 1 ] ) ,
239+ } ) ;
229240 } }
230- style = { { width : "100%" } }
231241 >
232242 < option value = { "" } > Select Workflow ID</ option >
233243 { allWorkflowIds . sort ( ) . map ( ( id ) => (
234- < option key = { id } value = { id } >
235- { id }
244+ < option
245+ key = { `${ id . id } ${ id . attempt } ` }
246+ value = { `${ id . id } ${ id . attempt } ` }
247+ >
248+ { id . id } (Attempt { id . attempt } )
236249 </ option >
237250 ) ) }
238251 </ select >
@@ -275,7 +288,15 @@ export default function WorkflowBox({
275288 </ Stack >
276289 </ Stack >
277290 { wide && (
278- < TestInfo workflowId = { workflowId ! } runAttempt = { "1" } jobs = { jobs } />
291+ < TestInfo
292+ workflowId = { workflowId ! . toString ( ) }
293+ runAttempt = {
294+ selectedWorkflowId ?. attempt ?. toString ( ) ||
295+ jobs [ 0 ] . runAttempt ?. toString ( ) ||
296+ "1"
297+ }
298+ jobs = { jobs }
299+ />
279300 ) }
280301 < >
281302 { jobs . sort ( sortJobsByConclusion ) . map ( ( job ) => (
0 commit comments