@@ -36,6 +36,21 @@ const allUsedActions = chain(workflows)
3636
3737const scheduledWorkflows = workflows . filter ( ( { data } ) => data . on . schedule )
3838
39+ const alertWorkflows = workflows
40+ // Only include jobs running on docs-internal
41+ . filter ( ( { data } ) =>
42+ Object . values ( data . jobs )
43+ . map ( ( job ) => job . if )
44+ . toString ( )
45+ . includes ( 'docs-internal' ) ,
46+ )
47+ // Require slack alerts on workflows that aren't actively watched at time of run
48+ . filter ( ( { data } ) => data . on . schedule || data . on . push || data . on . issues || data . on . issue_comment )
49+ // Not including
50+ // - premerge workflows: pull_request, pull_request_target, pull_request_review, merge_group
51+ // - adhoc workflows: workflow_dispatch, workflow_run, workflow_call, repository_dispatch
52+ // to generate list, console.log(new Set(workflows.map(({ data }) => Object.keys(data.on)).flat()))
53+
3954const dailyWorkflows = scheduledWorkflows . filter ( ( { data } ) =>
4055 data . on . schedule . find ( ( { cron } ) => / ^ 2 0 [ ^ * ] / . test ( cron ) ) ,
4156)
@@ -73,7 +88,13 @@ describe('GitHub Actions workflows', () => {
7388 } ,
7489 )
7590
76- test . each ( scheduledWorkflows ) (
91+ test . each ( workflows ) ( 'limits repository scope $filename' , ( { filename, data } ) => {
92+ for ( const condition of Object . values ( data . jobs ) . map ( ( job ) => job . if ) ) {
93+ expect ( condition ) . toContain ( 'github.repository' )
94+ }
95+ } )
96+
97+ test . each ( alertWorkflows ) (
7798 'scheduled workflows slack alert on fail $filename' ,
7899 ( { filename, data } ) => {
79100 for ( const [ name , job ] of Object . entries ( data . jobs ) ) {
@@ -84,7 +105,7 @@ describe('GitHub Actions workflows', () => {
84105 } ,
85106 )
86107
87- test . each ( scheduledWorkflows ) (
108+ test . each ( alertWorkflows ) (
88109 'performs a checkout before calling composite action $filename' ,
89110 ( { filename, data } ) => {
90111 for ( const [ name , job ] of Object . entries ( data . jobs ) ) {
0 commit comments