@@ -287,7 +287,7 @@ blocks:
287
287
- name : ARCH
288
288
value : x64
289
289
- name : BENCHMARK_BOUNDS_CONFIG
290
- value : tests/ducktape/benchmark_bounds .json
290
+ value : tests/ducktape/producer_benchmark_bounds .json
291
291
- name : BENCHMARK_ENVIRONMENT
292
292
value : ci
293
293
prologue :
@@ -299,80 +299,80 @@ blocks:
299
299
# Setup Python environment
300
300
- sem-version python 3.9
301
301
- python3 -m venv _venv && source _venv/bin/activate
302
-
302
+
303
303
# Install ducktape framework and additional dependencies
304
304
- pip install ducktape psutil
305
-
305
+
306
306
# Install existing test requirements
307
307
- pip install -r requirements/requirements-tests-install.txt
308
-
308
+
309
309
# Build and install confluent-kafka from source
310
310
- lib_dir=dest/runtimes/$OS_NAME-$ARCH/native
311
311
- tools/wheels/install-librdkafka.sh "${LIBRDKAFKA_VERSION#v}" dest
312
312
- export CFLAGS="$CFLAGS -I${PWD}/dest/build/native/include"
313
313
- export LDFLAGS="$LDFLAGS -L${PWD}/${lib_dir}"
314
314
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/$lib_dir"
315
315
- python3 -m pip install -e .
316
-
316
+
317
317
# Store project root for reliable navigation
318
318
- PROJECT_ROOT="${PWD}"
319
-
319
+
320
320
# Start Kafka cluster and Schema Registry using dedicated ducktape compose file (KRaft mode)
321
321
- cd "${PROJECT_ROOT}/tests/docker"
322
322
- docker-compose -f docker-compose.ducktape.yml up -d kafka schema-registry
323
-
323
+
324
324
# Debug: Check container status and logs
325
325
- echo "=== Container Status ==="
326
326
- docker-compose -f docker-compose.ducktape.yml ps
327
327
- echo "=== Kafka Logs ==="
328
328
- docker-compose -f docker-compose.ducktape.yml logs kafka | tail -50
329
-
329
+
330
330
# Wait for Kafka to be ready (using PLAINTEXT listener for external access)
331
331
- |
332
332
timeout 1800 bash -c '
333
333
counter=0
334
- until docker-compose -f docker-compose.ducktape.yml exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; do
334
+ until docker-compose -f docker-compose.ducktape.yml exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; do
335
335
echo "Waiting for Kafka... (attempt $((counter+1)))"
336
-
336
+
337
337
# Show logs every 4th attempt (every 20 seconds)
338
338
if [ $((counter % 4)) -eq 0 ] && [ $counter -gt 0 ]; then
339
339
echo "=== Recent Kafka Logs ==="
340
340
docker-compose -f docker-compose.ducktape.yml logs --tail=10 kafka
341
341
echo "=== Container Status ==="
342
342
docker-compose -f docker-compose.ducktape.yml ps kafka
343
343
fi
344
-
344
+
345
345
counter=$((counter+1))
346
346
sleep 5
347
347
done
348
348
'
349
349
- echo "Kafka cluster is ready!"
350
-
350
+
351
351
# Wait for Schema Registry to be ready
352
352
- echo "=== Waiting for Schema Registry ==="
353
353
- |
354
354
timeout 300 bash -c '
355
355
counter=0
356
- until curl -f http://localhost:8081/subjects >/dev/null 2>&1; do
356
+ until curl -f http://localhost:8081/subjects >/dev/null 2>&1; do
357
357
echo "Waiting for Schema Registry... (attempt $((counter+1)))"
358
-
358
+
359
359
# Show logs every 3rd attempt (every 15 seconds)
360
360
if [ $((counter % 3)) -eq 0 ] && [ $counter -gt 0 ]; then
361
361
echo "=== Recent Schema Registry Logs ==="
362
362
docker-compose -f docker-compose.ducktape.yml logs --tail=10 schema-registry
363
363
echo "=== Schema Registry Container Status ==="
364
364
docker-compose -f docker-compose.ducktape.yml ps schema-registry
365
365
fi
366
-
366
+
367
367
counter=$((counter+1))
368
368
sleep 5
369
369
done
370
370
'
371
371
- echo "Schema Registry is ready!"
372
-
372
+
373
373
# Run standard ducktape tests with CI bounds
374
374
- cd "${PROJECT_ROOT}" && PYTHONPATH="${PROJECT_ROOT}" python tests/ducktape/run_ducktape_test.py
375
-
375
+
376
376
# Cleanup
377
377
- cd "${PROJECT_ROOT}/tests/docker" && docker-compose -f docker-compose.ducktape.yml down -v || true
378
378
- name : " Packaging"
0 commit comments