33# CI groups, which reuse the production build from `e2e-build`.
44# The job extracts it into apps/sim/.next before running these suites.
55#
6- # Usage: http-e2e.sh <scim|cli|stop-after|desktop-inbox|assistant-actions|organization-search|browser-extension|browser-extension-native|browser-extension-navigation|browser-extension-composer|browser-extension-access|project-files|mobile|seo> (run from apps/sim)
6+ # Usage: http-e2e.sh <scim|cli|stop-after|desktop-inbox|assistant-actions|organization-search|org-redesign| browser-extension|browser-extension-native|browser-extension-navigation|browser-extension-composer|browser-extension-access|project-files|mobile|seo> (run from apps/sim)
77#
88# The job provides DATABASE_URL, BETTER_AUTH_SECRET and ENCRYPTION_KEY; each group sets the rest of
99# its app's environment here. Reports and server logs land in $RUNNER_TEMP/e2e.
2020# telemetry flush runs detached and still writes .next/dev).
2121set -euo pipefail
2222
23- group=${1:? usage: http-e2e.sh <scim|cli|stop-after|desktop-inbox|assistant-actions|organization-search|browser-extension|browser-extension-native|browser-extension-navigation|browser-extension-composer|browser-extension-access|project-files|mobile|seo>}
23+ group=${1:? usage: http-e2e.sh <scim|cli|stop-after|desktop-inbox|assistant-actions|organization-search|org-redesign| browser-extension|browser-extension-native|browser-extension-navigation|browser-extension-composer|browser-extension-access|project-files|mobile|seo>}
2424report_dir=" $RUNNER_TEMP /e2e"
2525ready_timeout_seconds=600
2626mkdir -p " $report_dir "
@@ -32,6 +32,7 @@ status_log=''
3232realtime_pid=' '
3333realtime_tag=' '
3434realtime_log=' '
35+ agent_pid=' '
3536browsers_pid=' '
3637local_app_url=' '
3738# `dev` or `start`; a group sets it before start_app.
@@ -63,6 +64,10 @@ finish() {
6364 tail -n 100 " $realtime_log "
6465 fi
6566 fi
67+ if [ -n " $agent_pid " ]; then
68+ kill " $agent_pid " 2> /dev/null || true
69+ wait " $agent_pid " 2> /dev/null || true
70+ fi
6671 if [ -n " $browsers_pid " ]; then
6772 kill -- " -$browsers_pid " 2> /dev/null || true
6873 wait " $browsers_pid " 2> /dev/null || true
@@ -133,6 +138,13 @@ start_realtime() {
133138 wait_ready " $realtime_pid " " http://127.0.0.1:$port /health" " $name realtime server"
134139}
135140
141+ # stop_app: stops the app start_app started, so a group can start it again under other flags.
142+ stop_app () {
143+ bash " $GITHUB_WORKSPACE /.github/scripts/stop-session.sh" " $server_pid " " $app_tag "
144+ wait " $server_pid " 2> /dev/null || true
145+ server_pid=' '
146+ }
147+
136148# wait_ready <pid> <health-url> <label>
137149wait_ready () {
138150 local pid=$1 url=$2 label=$3
@@ -268,6 +280,59 @@ case "$group" in
268280 esac
269281 ;;
270282
283+ # One hosted Enterprise organization, a scripted worker in place of the
284+ # model, and the app twice: with People off, then on. Hosted is decided by the
285+ # app's hostname, which the job maps to loopback. Both phases report, whichever fails.
286+ org-redesign)
287+ app_server=start
288+ export REDIS_URL=redis://127.0.0.1:6379
289+ export E2E_APP_PUBLIC_URL=http://org-redesign.sim.ai:3029
290+ export NEXT_PUBLIC_APP_URL=" $E2E_APP_PUBLIC_URL "
291+ export INTERNAL_API_BASE_URL=http://127.0.0.1:3029 TRUSTED_ORIGINS=http://127.0.0.1:3029
292+ export NEXT_PUBLIC_SOCKET_URL=http://127.0.0.1:3030 SOCKET_SERVER_URL=http://127.0.0.1:3030
293+ export BILLING_ENABLED=true NEXT_PUBLIC_BILLING_ENABLED=true
294+ export ENTERPRISE_ENABLED=true NEXT_PUBLIC_ENTERPRISE_ENABLED=true
295+ export ORGANIZATIONS_ENABLED=true NEXT_PUBLIC_ORGANIZATIONS_ENABLED=true
296+ export SSO_ENABLED=true NEXT_PUBLIC_SSO_ENABLED=true
297+ export KNOWLEDGE_MEMBER_ACCESS=true CREDENTIAL_GROUPS=true ACCESS_CONTROL_ENABLED=true
298+ export NEXT_PUBLIC_ACCESS_CONTROL_ENABLED=true SIM_LINKS=true
299+ export COPILOT_TOOL_PERMISSIONS_ENABLED=true
300+ export INTERNAL_API_SECRET=org-redesign-ci-local-secret-at-least-32-characters
301+ export COPILOT_API_KEY=org-redesign-ci-local-copilot-key MOTHERSHIP_SIM_TRANSPORT=direct
302+ export SIM_AGENT_API_URL=http://127.0.0.1:3031
303+ export GOOGLE_CLIENT_ID=org-redesign-google-client GOOGLE_CLIENT_SECRET=org-redesign-google-secret
304+ export JIRA_CLIENT_ID=org-redesign-jira-client JIRA_CLIENT_SECRET=org-redesign-jira-secret
305+ export CONFLUENCE_CLIENT_ID=org-redesign-confluence-client CONFLUENCE_CLIENT_SECRET=org-redesign-confluence-secret
306+ export STRIPE_SECRET_KEY=sk_test_org_redesign STRIPE_WEBHOOK_SECRET=whsec_org_redesign
307+ export DB_TX_TRIPWIRE=throw
308+ export BROWSER_EXTENSION_IDS=abcdefghijklmnopabcdefghijklmnop
309+ bun --no-env-file scripts/org-redesign-seed.ts
310+ start_browser_install org-redesign --only-shell chromium
311+ bun --no-env-file scripts/org-redesign-e2e/scripted-agent.ts 3031 \
312+ > " $report_dir /org-redesign-agent.log" 2>&1 &
313+ agent_pid=$!
314+ wait_ready " $agent_pid " http://127.0.0.1:3031/health ' scripted agent'
315+ start_app org-redesign 3029 ' organization redesign' record-http-status
316+ start_realtime org-redesign 3030
317+ wait_for_browsers
318+ run_status=0
319+ ORG_REDESIGN_E2E_ORIGIN=" $E2E_APP_PUBLIC_URL " \
320+ ORG_REDESIGN_E2E_DATABASE_URL=" $DATABASE_URL " \
321+ ORG_REDESIGN_E2E_AUTH_SECRET=" $BETTER_AUTH_SECRET " \
322+ ORG_REDESIGN_E2E_REPORT_PATH=" $report_dir /org-redesign-ui-report.json" \
323+ bun --no-env-file scripts/test-org-redesign-e2e.ts || run_status=$?
324+ stop_app
325+ export PEOPLE=true
326+ start_app org-redesign-people 3029 ' organization redesign, People on'
327+ ORG_REDESIGN_E2E_PHASE=people \
328+ ORG_REDESIGN_E2E_ORIGIN=" $E2E_APP_PUBLIC_URL " \
329+ ORG_REDESIGN_E2E_DATABASE_URL=" $DATABASE_URL " \
330+ ORG_REDESIGN_E2E_AUTH_SECRET=" $BETTER_AUTH_SECRET " \
331+ ORG_REDESIGN_E2E_REPORT_PATH=" $report_dir /org-redesign-people-ui-report.json" \
332+ bun --no-env-file scripts/test-org-redesign-e2e.ts || run_status=$?
333+ exit " $run_status "
334+ ;;
335+
271336 browser-extension|browser-extension-native|browser-extension-navigation|browser-extension-composer|browser-extension-access)
272337 extension_group=all
273338 case " $group " in
0 commit comments