@@ -35,37 +35,122 @@ jobs:
3535 run : |
3636 cd .devcontainer
3737 source .env
38+ echo "=== Environment variables ==="
39+ echo "SENTRY_E2E_RAILS_APP_PORT: ${SENTRY_E2E_RAILS_APP_PORT}"
40+ echo "SENTRY_DSN: ${SENTRY_DSN}"
41+ echo "=== Starting Rails mini app ==="
3842 docker compose --profile e2e up -d sentry-rails-mini
43+ echo "=== Checking container status ==="
44+ docker compose --profile e2e ps
45+ echo "=== Rails mini app logs ==="
46+ docker compose --profile e2e logs sentry-rails-mini
3947
4048 - name : Start mini svelte app
4149 run : |
4250 cd .devcontainer
4351 source .env
52+ echo "=== Starting Svelte mini app ==="
4453 docker compose --profile e2e up -d sentry-svelte-mini
54+ echo "=== Checking container status ==="
55+ docker compose --profile e2e ps
56+ echo "=== Svelte mini app logs ==="
57+ docker compose --profile e2e logs sentry-svelte-mini
4558
4659 - name : Wait for services to be healthy
4760 run : |
4861 cd .devcontainer
4962 source .env
5063
64+ echo "=== Debugging container status ==="
65+ docker compose --profile e2e ps
66+ echo "=== Checking port bindings ==="
67+ docker compose --profile e2e port sentry-rails-mini 4000 || echo "Rails port binding failed"
68+ docker compose --profile e2e port sentry-svelte-mini 4001 || echo "Svelte port binding failed"
69+
70+ echo "=== Latest container logs ==="
71+ echo "Rails mini logs:"
72+ docker compose --profile e2e logs --tail=50 sentry-rails-mini
73+ echo "Svelte mini logs:"
74+ docker compose --profile e2e logs --tail=50 sentry-svelte-mini
75+
76+ echo "=== Waiting for Docker health checks ==="
77+ timeout 120 bash -c "
78+ while true; do
79+ rails_health=\$(docker compose --profile e2e ps --format json sentry-rails-mini | jq -r '.[0].Health // \"none\"')
80+ svelte_health=\$(docker compose --profile e2e ps --format json sentry-svelte-mini | jq -r '.[0].Health // \"none\"')
81+ echo \"Rails health: \$rails_health, Svelte health: \$svelte_health\"
82+
83+ if [[ \"\$rails_health\" == \"healthy\" && \"\$svelte_health\" == \"healthy\" ]]; then
84+ echo \"Both containers are healthy!\"
85+ break
86+ fi
87+
88+ if [[ \"\$rails_health\" == \"unhealthy\" || \"\$svelte_health\" == \"unhealthy\" ]]; then
89+ echo \"One or more containers are unhealthy\"
90+ docker compose --profile e2e ps
91+ docker compose --profile e2e logs sentry-rails-mini
92+ docker compose --profile e2e logs sentry-svelte-mini
93+ exit 1
94+ fi
95+
96+ sleep 5
97+ done
98+ "
99+
51100 echo "Waiting for Rails mini app to be ready on port ${SENTRY_E2E_RAILS_APP_PORT}..."
52- timeout 60 bash -c "until curl -s http://localhost:${SENTRY_E2E_RAILS_APP_PORT}/health | grep -q 'ok'; do echo 'Waiting for Rails app...'; sleep 2; done"
101+ timeout 60 bash -c "
102+ while true; do
103+ echo 'Attempting to connect to Rails app...'
104+ response=\$(curl -s http://localhost:${SENTRY_E2E_RAILS_APP_PORT}/health || echo 'connection_failed')
105+ echo \"Response: \$response\"
106+ if echo \"\$response\" | grep -q 'ok'; then
107+ echo 'Rails app responded with ok'
108+ break
109+ fi
110+ echo 'Waiting 2 seconds...'
111+ sleep 2
112+ done
113+ "
53114 echo "✅ Rails mini app is ready"
54115
55116 echo "Waiting for Svelte mini app to be ready on port ${SENTRY_E2E_SVELTE_APP_PORT}..."
56- timeout 60 bash -c "until curl -s http://localhost:${SENTRY_E2E_SVELTE_APP_PORT}/health | grep -q 'ok'; do echo 'Waiting for Svelte app...'; sleep 2; done"
117+ timeout 60 bash -c "
118+ while true; do
119+ echo 'Attempting to connect to Svelte app...'
120+ response=\$(curl -s http://localhost:${SENTRY_E2E_SVELTE_APP_PORT}/health || echo 'connection_failed')
121+ echo \"Response: \$response\"
122+ if echo \"\$response\" | grep -q 'ok'; then
123+ echo 'Svelte app responded with ok'
124+ break
125+ fi
126+ echo 'Waiting 2 seconds...'
127+ sleep 2
128+ done
129+ "
57130 echo "✅ Svelte mini app is ready"
58131
59132 echo "All services are healthy!"
60133
134+ - name : Final status check before tests
135+ run : |
136+ cd .devcontainer
137+ source .env
138+ echo "=== Final container status ==="
139+ docker compose --profile e2e ps
140+ echo "=== Final logs check ==="
141+ echo "Rails mini logs:"
142+ docker compose --profile e2e logs --tail=20 sentry-rails-mini
143+ echo "Svelte mini logs:"
144+ docker compose --profile e2e logs --tail=20 sentry-svelte-mini
145+
61146 - name : Run e2e tests
62147 run : |
63148 cd .devcontainer
64149 source .env
65150 docker compose --profile e2e run --rm sentry-test bundle exec rake
66151 env :
67- SENTRY_E2E_RAILS_APP_URL : http://sentry-rails-mini:5000
68- SENTRY_E2E_SVELTE_APP_URL : http://sentry-svelte-mini:5001
152+ SENTRY_E2E_RAILS_APP_URL : http://sentry-rails-mini:4000
153+ SENTRY_E2E_SVELTE_APP_URL : http://sentry-svelte-mini:4001
69154
70155 - name : Stop e2e services
71156 if : always()
0 commit comments