-
-
Notifications
You must be signed in to change notification settings - Fork 533
Expand file tree
/
Copy pathrun
More file actions
executable file
·92 lines (74 loc) · 2.1 KB
/
run
File metadata and controls
executable file
·92 lines (74 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
set -e
cd /workspace/sentry
sudo mkdir -p vendor/gems
sudo chown -R sentry:sentry vendor/gems
git config --global --add safe.directory /workspace/sentry
git config --global --add safe.directory /workspace/sentry/vendor/gems/*
sudo chown -R sentry:sentry .
run_service_setup() {
local service="$1"
echo "🚀 Running setup for service: $service"
case "$service" in
"dev")
if ! .devcontainer/setup --with-foreman --only-bundle; then
echo "❌ Setup failed for service: $service"
exit 1
fi
;;
"test")
if ! .devcontainer/setup --with-foreman --only .,spec/apps/rails-mini; then
echo "❌ Setup failed for service: $service"
exit 1
fi
;;
*)
echo "❌ Unknown service: $service"
echo "Available services: dev, test"
exit 1
;;
esac
echo "✅ Setup completed for service: $service"
}
# Function to start services in background
start_services_if_needed() {
# Check if we're running tests (bundle exec rake)
if [[ "$*" == *"bundle exec rake"* ]]; then
echo "🚀 Starting e2e services in background for test execution..."
# Start foreman in background
foreman start &
FOREMAN_PID=$!
# Wait for services to be ready
echo "⏳ Waiting for services to start..."
for i in {1..30}; do
if curl -f http://localhost:4000/health >/dev/null 2>&1 && \
curl -f http://localhost:4001/health >/dev/null 2>&1; then
echo "✅ Services are ready!"
break
fi
if [ $i -eq 30 ]; then
echo "❌ Services failed to start within timeout"
kill $FOREMAN_PID 2>/dev/null || true
exit 1
fi
sleep 2
done
# Set up cleanup trap
trap "echo '🧹 Stopping services...'; kill $FOREMAN_PID 2>/dev/null || true; wait $FOREMAN_PID 2>/dev/null || true" EXIT
fi
}
# Parse arguments
if [ "$1" = "--service" ] && [ -n "$2" ]; then
service="$2"
shift 2
run_service_setup "$service"
if [ $# -gt 0 ]; then
start_services_if_needed "$@"
exec "$@"
else
exec bash
fi
else
start_services_if_needed "$@"
exec "$@"
fi