Skip to content

Commit 77ce8d5

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/packages/sdk/vercel/examples/complete/next-14.2.32
2 parents 691b158 + abe5e34 commit 77ce8d5

File tree

9 files changed

+338
-229
lines changed

9 files changed

+338
-229
lines changed

.github/workflows/browser.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,89 @@ jobs:
4242
package_name: '@launchdarkly/js-client-sdk'
4343
pr_number: ${{ github.event.number }}
4444
size_limit: 25000
45+
46+
# Contract Tests
47+
- name: Install contract test dependencies
48+
run: yarn workspaces focus browser-contract-test-adapter browser-contract-test-service
49+
50+
- name: Install Playwright browsers
51+
run: yarn workspace browser-contract-test-service install-playwright-browsers
52+
53+
- name: Build contract test adapter
54+
run: yarn workspace browser-contract-test-adapter run build
55+
56+
- name: Build contract test entity (browser app)
57+
run: yarn workspace browser-contract-test-service run build
58+
59+
- name: Start contract test adapter in background
60+
run: |
61+
yarn workspace browser-contract-test-adapter run start > /tmp/adapter.log 2>&1 &
62+
echo $! > /tmp/adapter.pid
63+
64+
- name: Serve browser app with http-server
65+
run: |
66+
npx http-server packages/sdk/browser/contract-tests/entity/dist -p 5173 --cors > /tmp/http-server.log 2>&1 &
67+
echo $! > /tmp/http-server.pid
68+
69+
- name: Wait for services to be ready
70+
run: |
71+
echo "Waiting for adapter on port 8001..."
72+
for i in {1..30}; do
73+
if nc -z localhost 8001; then
74+
echo "Adapter WebSocket ready"
75+
break
76+
fi
77+
if [ $i -eq 30 ]; then
78+
echo "Timeout waiting for adapter"
79+
cat /tmp/adapter.log
80+
exit 1
81+
fi
82+
sleep 1
83+
done
84+
85+
echo "Waiting for HTTP server on port 5173..."
86+
for i in {1..30}; do
87+
if curl -s http://localhost:5173 > /dev/null; then
88+
echo "HTTP server ready"
89+
break
90+
fi
91+
if [ $i -eq 30 ]; then
92+
echo "Timeout waiting for HTTP server"
93+
cat /tmp/http-server.log
94+
exit 1
95+
fi
96+
sleep 1
97+
done
98+
99+
- name: Open browser app in headless Chromium
100+
run: |
101+
node packages/sdk/browser/contract-tests/entity/open-browser.mjs http://localhost:5173 > /tmp/playwright.log 2>&1 &
102+
echo $! > /tmp/playwright.pid
103+
sleep 5 # Give the browser time to initialize and connect via WebSocket
104+
105+
- name: Run contract tests
106+
uses: launchdarkly/gh-actions/actions/contract-tests@21174f3a7f3aa3e3121227ec91842e8a1ebeec6e
107+
with:
108+
test_service_port: 8000
109+
token: ${{ secrets.GITHUB_TOKEN }}
110+
extra_params: '--skip-from=${{ github.workspace }}/packages/sdk/browser/contract-tests/suppressions.txt --stop-service-at-end'
111+
112+
- name: Print logs on failure
113+
if: failure()
114+
run: |
115+
echo "=== Adapter Log ==="
116+
cat /tmp/adapter.log || echo "No adapter log"
117+
echo "=== HTTP Server Log ==="
118+
cat /tmp/http-server.log || echo "No http-server log"
119+
echo "=== Playwright Log ==="
120+
cat /tmp/playwright.log || echo "No playwright log"
121+
122+
- name: Cleanup contract test services
123+
if: always()
124+
run: |
125+
[ -f /tmp/playwright.pid ] && kill $(cat /tmp/playwright.pid) || true
126+
[ -f /tmp/http-server.pid ] && kill $(cat /tmp/http-server.pid) || true
127+
[ -f /tmp/adapter.pid ] && kill $(cat /tmp/adapter.pid) || true
128+
pkill -f "playwright" || true
129+
pkill -f "http-server" || true
130+
pkill -f "browser-contract-test-adapter" || true

.github/workflows/manual-publish.yml

Lines changed: 0 additions & 117 deletions
This file was deleted.

0 commit comments

Comments
 (0)