@@ -4,18 +4,43 @@ permissions:
44  pull-requests : write 
55
66on :
7+   #  Manual trigger with inputs for control
8+   workflow_dispatch :
9+     inputs :
10+       trigger_supabase_js :
11+         description : ' Trigger supabase-js tests' 
12+         type : boolean 
13+         default : true 
14+       target_branch :
15+         description : ' Target branch for supabase-js tests' 
16+         type : string 
17+         default : ' chore/add-cross-repo-test' 
18+   
19+   #  Push to master - only when source code changes
720  push :
821    branches :
922      - master 
23+     paths :
24+       - ' src/**' 
25+       - ' test/**' 
26+       - ' package.json' 
27+       - ' package-lock.json' 
28+       - ' tsconfig.json' 
29+   
30+   #  PR triggers - only when labeled  
1031  pull_request :
11-     types : [opened , synchronize, labeled ] 
32+     types : [labeled , synchronize] 
1233
1334jobs :
1435  preview :
36+     #  Run only for PRs with 'trigger: preview' label or pushes to master
1537    if : > 
1638      github.repository == 'supabase/realtime-js' && 
17-       (github.event_name == 'push' || 
18-       (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'trigger: preview'))) 
39+       ( 
40+         github.event_name == 'workflow_dispatch' || 
41+         github.event_name == 'push' || 
42+         (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'trigger: preview')) 
43+       ) 
1944     runs-on : ubuntu-latest 
2045    outputs :
2146      preview-url : ${{ steps.preview.outputs.url }} 
4974
5075   trigger-supabase-js-tests :
5176    needs : preview 
52-     if : needs.preview.outputs.preview-url != '' 
77+     #  Only run if preview URL exists and either:
78+     #  - Not workflow_dispatch, OR
79+     #  - workflow_dispatch with trigger_supabase_js = true
80+     if : > 
81+       needs.preview.outputs.preview-url != '' && 
82+       ( 
83+         github.event_name != 'workflow_dispatch' || 
84+         github.event.inputs.trigger_supabase_js == 'true' 
85+       ) 
5386     runs-on : ubuntu-latest 
5487    steps :
5588      - name : Generate GitHub App token 
@@ -68,13 +101,17 @@ jobs:
68101          script : | 
69102            const prNumber = context.issue.number || 'push'; 
70103            const triggeringRepo = context.repo.repo; 
104+             // Use input target_branch if workflow_dispatch, otherwise default 
105+             const targetBranch = context.eventName === 'workflow_dispatch' && context.payload.inputs?.target_branch 
106+               ? context.payload.inputs.target_branch 
107+               : 'chore/add-cross-repo-test'; 
71108
72109            try { 
73110              const response = await github.rest.actions.createWorkflowDispatch({ 
74111                owner: 'supabase', 
75112                repo: 'supabase-js', 
76113                workflow_id: 'external-test.yml', 
77-                 ref: 'chore/add-cross-repo-test' , 
114+                 ref: targetBranch , 
78115                inputs: { 
79116                  triggering_repo: triggeringRepo, 
80117                  triggering_pr: prNumber.toString(), 
0 commit comments