Skip to content

Commit 65b7d5a

Browse files
committed
chore: trigger external tests on supabase-js
1 parent 2397ff0 commit 65b7d5a

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

.github/workflows/preview-release.yml

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ jobs:
1717
(github.event_name == 'push' ||
1818
(github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'trigger: preview')))
1919
runs-on: ubuntu-latest
20+
outputs:
21+
preview-url: ${{ steps.preview.outputs.url }}
22+
package-name: ${{ steps.preview.outputs.package }}
2023
steps:
2124
- name: Checkout code
2225
uses: actions/checkout@v4
@@ -33,4 +36,66 @@ jobs:
3336
- name: Build
3437
run: npm run build
3538

36-
- run: npx pkg-pr-new@latest publish --compact
39+
- name: Publish preview
40+
id: preview
41+
run: |
42+
OUTPUT=$(npx pkg-pr-new@latest publish --compact)
43+
echo "$OUTPUT"
44+
# Extract the preview URL from the output
45+
PREVIEW_URL=$(echo "$OUTPUT" | grep -oE 'npm i [^[:space:]]+' | head -1 | cut -d' ' -f3)
46+
PACKAGE_NAME=$(echo "$GITHUB_REPOSITORY" | cut -d'/' -f2)
47+
echo "url=$PREVIEW_URL" >> $GITHUB_OUTPUT
48+
echo "package=$PACKAGE_NAME" >> $GITHUB_OUTPUT
49+
50+
trigger-supabase-js-tests:
51+
needs: preview
52+
if: needs.preview.outputs.preview-url != ''
53+
runs-on: ubuntu-latest
54+
steps:
55+
- name: Trigger supabase-js CI tests
56+
uses: actions/github-script@v7
57+
with:
58+
github-token: ${{ secrets.GITHUB_TOKEN }}
59+
script: |
60+
const prNumber = context.issue.number || 'push';
61+
const triggeringRepo = context.repo.repo;
62+
63+
try {
64+
const response = await github.rest.repos.createDispatchEvent({
65+
owner: 'supabase',
66+
repo: 'supabase-js',
67+
event_type: 'test-with-preview',
68+
client_payload: {
69+
triggering_repo: triggeringRepo,
70+
triggering_pr: prNumber.toString(),
71+
preview_url: '${{ needs.preview.outputs.preview-url }}',
72+
package_name: '${{ needs.preview.outputs.package-name }}',
73+
triggering_sha: context.sha,
74+
triggering_ref: context.ref
75+
}
76+
});
77+
78+
console.log('Successfully triggered supabase-js tests');
79+
console.log('Response:', response.status);
80+
81+
// Add a comment to the PR indicating tests were triggered
82+
if (context.issue.number) {
83+
await github.rest.issues.createComment({
84+
owner: context.repo.owner,
85+
repo: context.repo.repo,
86+
issue_number: context.issue.number,
87+
body: `🚀 **Preview release created!**\n\nsupabase-js CI tests have been automatically triggered to verify compatibility.\n\n**Preview package:** \`${{ needs.preview.outputs.preview-url }}\`\n\nResults will be posted here once testing is complete.`
88+
});
89+
}
90+
} catch (error) {
91+
console.error('Failed to trigger supabase-js tests:', error);
92+
if (context.issue.number) {
93+
await github.rest.issues.createComment({
94+
owner: context.repo.owner,
95+
repo: context.repo.repo,
96+
issue_number: context.issue.number,
97+
body: `⚠️ **Preview release created, but failed to trigger supabase-js tests**\n\n**Preview package:** \`${{ needs.preview.outputs.preview-url }}\`\n\nPlease manually verify compatibility or contact the team.`
98+
});
99+
}
100+
throw error;
101+
}

0 commit comments

Comments
 (0)