@@ -4,18 +4,43 @@ permissions:
4
4
pull-requests : write
5
5
6
6
on :
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
7
20
push :
8
21
branches :
9
22
- master
23
+ paths :
24
+ - ' src/**'
25
+ - ' test/**'
26
+ - ' package.json'
27
+ - ' package-lock.json'
28
+ - ' tsconfig.json'
29
+
30
+ # PR triggers - only when labeled
10
31
pull_request :
11
- types : [opened , synchronize, labeled ]
32
+ types : [labeled , synchronize]
12
33
13
34
jobs :
14
35
preview :
36
+ # Run only for PRs with 'trigger: preview' label or pushes to master
15
37
if : >
16
38
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
+ )
19
44
runs-on : ubuntu-latest
20
45
outputs :
21
46
preview-url : ${{ steps.preview.outputs.url }}
49
74
50
75
trigger-supabase-js-tests :
51
76
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
+ )
53
86
runs-on : ubuntu-latest
54
87
steps :
55
88
- name : Generate GitHub App token
@@ -68,13 +101,17 @@ jobs:
68
101
script : |
69
102
const prNumber = context.issue.number || 'push';
70
103
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';
71
108
72
109
try {
73
110
const response = await github.rest.actions.createWorkflowDispatch({
74
111
owner: 'supabase',
75
112
repo: 'supabase-js',
76
113
workflow_id: 'external-test.yml',
77
- ref: 'chore/add-cross-repo-test' ,
114
+ ref: targetBranch ,
78
115
inputs: {
79
116
triggering_repo: triggeringRepo,
80
117
triggering_pr: prNumber.toString(),
0 commit comments