@@ -7,69 +7,44 @@ concurrency:
77 group : relay-per-worker-smoke-${{ github.sha }}
88 cancel-in-progress : true
99
10+ env :
11+ SNUBA_NO_WORKERS : 1
12+
1013jobs :
1114 smoke-test :
12- runs-on : ubuntu-22 .04
15+ runs-on : ubuntu-24 .04
1316 timeout-minutes : 20
1417 env :
15- MIGRATIONS_TEST_MIGRATE : 0
16- PYTEST_ADDOPTS : ' --no-header -q'
17- SENTRY_SKIP_BACKEND_VALIDATION : 1
1818 XDIST_PER_WORKER_SNUBA : ' 1'
1919 XDIST_WORKERS : ' 2'
2020 PYTHONHASHSEED : ' 0'
2121
2222 steps :
23- - uses : actions/checkout@v4
23+ - uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
2424
25- - name : Set up Python 3.13.1
26- uses : actions/setup-python@v5
25+ - name : Setup sentry env (Full Snuba stack)
26+ uses : ./.github/actions/setup-sentry
27+ id : setup
2728 with :
28- python-version : 3.13.1
29-
30- - name : Set up outputs
31- id : config
32- env :
33- MATRIX_INSTANCE : 0
34- run : echo "matrix-instance-number=$(($MATRIX_INSTANCE + 1))" >> "$GITHUB_OUTPUT"
35-
36- - name : Install system deps
37- run : sudo apt-get update && sudo apt-get install -y libxmlsec1-dev libmaxminddb-dev
38-
39- - name : Set up pip
40- uses : ./.github/actions/setup-pip
41- id : pip
42-
43- - name : pip install
44- run : |
45- python -m pip install --upgrade pip wheel
46- pip install -e ".[dev]"
47-
48- - name : Set up devservices (backend-ci)
49- env :
50- NEED_KAFKA : ' true'
51- NEED_SNUBA : ' true'
52- run : |
53- sentry init
54- sentry devservices up --mode backend-ci
29+ mode : backend-ci
5530
5631 - name : Create per-worker ClickHouse databases and Snuba instances
5732 run : |
5833 echo "Setting up $XDIST_WORKERS per-worker ClickHouse databases + Snuba instances ..."
59- SNUBA_IMAGE=$(docker inspect --format= '{{.Config.Image}}' sentry_snuba 2>/dev/null || echo "ghcr.io/getsentry/snuba:nightly")
60- echo "Using Snuba image: $SNUBA_IMAGE"
34+ SNUBA_IMAGE=$(docker inspect sentry_snuba --format '{{.Config.Image}}' 2>/dev/null || docker inspect snuba-snuba-1 --format '{{.Config.Image}}' 2>/dev/null || echo "ghcr.io/getsentry/snuba:nightly")
35+ SNUBA_NETWORK=$(docker inspect sentry_snuba --format '{{range $k, $v := .NetworkSettings.Networks}}{{$k}}{{end}}' 2>/dev/null || docker inspect snuba-snuba-1 --format '{{range $k, $v := .NetworkSettings.Networks}}{{$k}}{{end}}' 2>/dev/null || echo "devservices")
6136
6237 for i in $(seq 0 $(($XDIST_WORKERS - 1))); do
6338 DB_NAME="default_gw${i}"
6439 SNUBA_PORT=$((1230 + i))
6540 CONTAINER_NAME="sentry_snuba_gw${i}"
6641
67- echo "--- Worker gw${i}: db=$DB_NAME, port=$SNUBA_PORT ---"
68- docker exec sentry_clickhouse clickhouse-client --query "CREATE DATABASE IF NOT EXISTS ${DB_NAME}"
42+ docker exec sentry_clickhouse clickhouse-client --query "CREATE DATABASE IF NOT EXISTS ${DB_NAME}" 2>/dev/null || \
43+ docker exec clickhouse-clickhouse-1 clickhouse-client --query "CREATE DATABASE IF NOT EXISTS ${DB_NAME}"
6944
7045 docker run -d \
7146 --name "$CONTAINER_NAME" \
72- --network devservices \
47+ --network "$SNUBA_NETWORK" \
7348 -p "${SNUBA_PORT}:1218" \
7449 -e SNUBA_SETTINGS=docker \
7550 -e CLICKHOUSE_HOST=clickhouse \
@@ -80,13 +55,11 @@ jobs:
8055 -e CLICKHOUSE_DATABASE="$DB_NAME" \
8156 "$SNUBA_IMAGE"
8257
83- echo "Bootstrapping Snuba for $DB_NAME ..."
8458 docker exec "$CONTAINER_NAME" snuba migrations migrate --force || true
8559
86- echo "Health check for $CONTAINER_NAME on port $SNUBA_PORT ..."
8760 for attempt in $(seq 1 15); do
8861 if curl -s "http://127.0.0.1:${SNUBA_PORT}/health" | grep -q "ok"; then
89- echo " Snuba gw${i} is healthy"
62+ echo "Snuba gw${i} healthy on port $SNUBA_PORT "
9063 break
9164 fi
9265 sleep 2
9669 - name : Run smoke test (4 relay tests, -n 2)
9770 run : |
9871 echo "=== Per-worker Relay xdist smoke test ==="
99- echo "Running 4 relay_integration tests with -n 2 workers"
10072 echo "Each worker gets its own Relay container + Kafka topics"
10173 echo ""
10274
@@ -118,20 +90,10 @@ jobs:
11890 echo "=== Relay container logs (all) ==="
11991 for c in $(docker ps -a --format "{{.Names}}" | grep relay); do
12092 echo "--- $c ---"
121- docker logs "$c" 2>&1 | tail -30
122- done
123-
124- echo ""
125- echo "=== Snuba per-worker container logs ==="
126- for c in $(docker ps -a --format "{{.Names}}" | grep snuba_gw); do
127- echo "--- $c ---"
128- docker logs "$c" 2>&1 | tail -20
93+ docker logs "$c" 2>&1 | tail -40
12994 done
13095
13196 echo ""
13297 echo "=== Kafka topics ==="
133- docker exec sentry_kafka kafka-topics --list --bootstrap-server localhost:9093 2>/dev/null || true
134-
135- echo ""
136- echo "=== xdist-snuba diagnostic logs ==="
137- cat /tmp/xdist-snuba-*.log 2>/dev/null || echo "(no logs found)"
98+ docker exec sentry_kafka kafka-topics --list --bootstrap-server localhost:9093 2>/dev/null || \
99+ docker exec kafka-kafka-1 kafka-topics --list --bootstrap-server localhost:9093 2>/dev/null || true
0 commit comments