Skip to content

Commit 51de10f

Browse files
committed
Resolved conflicts
2 parents f33b96e + 36a9e6c commit 51de10f

File tree

184 files changed

+14864
-2713
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+14864
-2713
lines changed

.ducktape/metadata/session_id

Lines changed: 0 additions & 1 deletion
This file was deleted.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ venv_examples
3434
.coverage
3535
**/coverage.xml
3636
**/test-report.xml
37-
*.ducktape
37+
.ducktape
38+
results

.semaphore/semaphore.yml

Lines changed: 120 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ execution_time_limit:
88
global_job_config:
99
env_vars:
1010
- name: LIBRDKAFKA_VERSION
11-
value: v2.11.1
11+
value: v2.12.1
1212
prologue:
1313
commands:
1414
- checkout
1515
- mkdir artifacts
1616
blocks:
17-
- name: "Wheels: OSX x64 - Python 3.7-3.12"
17+
- name: "Wheels: OSX x64 - Python 3.8-3.12"
1818
run:
1919
when: "tag =~ '.*'"
2020
dependencies: []
@@ -34,7 +34,7 @@ blocks:
3434
- PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse 2.16.2
3535
- tar -czf wheelhouse-macOS-${ARCH}.tgz wheelhouse
3636
- artifact push workflow wheelhouse-macOS-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/
37-
- name: "Wheels: OSX x64 - Python 3.13"
37+
- name: "Wheels: OSX x64 - Python 3.13-3.14"
3838
run:
3939
when: "tag =~ '.*'"
4040
dependencies: []
@@ -54,10 +54,10 @@ blocks:
5454
jobs:
5555
- name: Build
5656
commands:
57-
- sem-version python 3.11
57+
- sem-version python 3.13
5858
- PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse
59-
- tar -czf wheelhouse-macOS-${ARCH}-py313.tgz wheelhouse
60-
- artifact push workflow wheelhouse-macOS-${ARCH}-py313.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313.tgz/
59+
- tar -czf wheelhouse-macOS-${ARCH}-py313-plus.tgz wheelhouse
60+
- artifact push workflow wheelhouse-macOS-${ARCH}-py313-plus.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313-plus.tgz/
6161
- name: "Wheels: OSX arm64 - Python 3.8-3.12"
6262
run:
6363
when: "tag =~ '.*'"
@@ -80,7 +80,7 @@ blocks:
8080
- PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse 2.16.2
8181
- tar -czf wheelhouse-macOS-${ARCH}.tgz wheelhouse
8282
- artifact push workflow wheelhouse-macOS-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/
83-
- name: "Wheels: OSX arm64 - Python 3.13"
83+
- name: "Wheels: OSX arm64 - Python 3.13-3.14"
8484
run:
8585
when: "tag =~ '.*'"
8686
dependencies: []
@@ -102,10 +102,10 @@ blocks:
102102
jobs:
103103
- name: Build
104104
commands:
105-
- sem-version python 3.11
105+
- sem-version python 3.13
106106
- PIP_INSTALL_OPTIONS="--user" tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse
107-
- tar -czf wheelhouse-macOS-${ARCH}-py313.tgz wheelhouse
108-
- artifact push workflow wheelhouse-macOS-${ARCH}-py313.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313.tgz/
107+
- tar -czf wheelhouse-macOS-${ARCH}-py313-plus.tgz wheelhouse
108+
- artifact push workflow wheelhouse-macOS-${ARCH}-py313-plus.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}-py313-plus.tgz/
109109
- name: "Wheels: Linux arm64"
110110
run:
111111
when: "tag =~ '.*'"
@@ -122,7 +122,8 @@ blocks:
122122
jobs:
123123
- name: Build
124124
commands:
125-
- ./tools/build-manylinux.sh "${LIBRDKAFKA_VERSION#v}"
125+
- sem-version python 3.13
126+
- ./tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse
126127
- tar -czf wheelhouse-linux-${ARCH}.tgz wheelhouse
127128
- artifact push workflow wheelhouse-linux-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/
128129
- name: "Wheels: Linux x64"
@@ -141,6 +142,7 @@ blocks:
141142
jobs:
142143
- name: Build
143144
commands:
145+
- sem-version python 3.11
144146
- ./tools/wheels/build-wheels.sh "${LIBRDKAFKA_VERSION#v}" wheelhouse
145147
- tar -czf wheelhouse-linux-${ARCH}.tgz wheelhouse
146148
- artifact push workflow wheelhouse-linux-${ARCH}.tgz --destination artifacts/wheels-${OS_NAME}-${ARCH}.tgz/
@@ -170,6 +172,8 @@ blocks:
170172
- name: MSYSTEM
171173
value: UCRT64
172174
commands:
175+
- pyenv install 3.11.9
176+
- pyenv global 3.11.9
173177
- bash tools/mingw-w64/semaphore_commands.sh
174178
- bash tools/wheels/install-librdkafka.sh $env:LIBRDKAFKA_VERSION.TrimStart("v") dest
175179
- tools/wheels/build-wheels.bat x64 win_amd64 dest wheelhouse
@@ -275,14 +279,114 @@ blocks:
275279
- python3 -m venv _venv && source _venv/bin/activate
276280
- chmod u+r+x tools/source-package-verification.sh
277281
- tools/source-package-verification.sh
282+
- name: "Ducktape Performance Tests (Linux x64)"
283+
dependencies: []
284+
task:
285+
agent:
286+
machine:
287+
type: s1-prod-ubuntu24-04-amd64-3
288+
env_vars:
289+
- name: OS_NAME
290+
value: linux
291+
- name: ARCH
292+
value: x64
293+
- name: BENCHMARK_BOUNDS_CONFIG
294+
value: tests/ducktape/producer_benchmark_bounds.json
295+
- name: BENCHMARK_ENVIRONMENT
296+
value: ci
297+
prologue:
298+
commands:
299+
- '[[ -z $DOCKERHUB_APIKEY ]] || docker login --username $DOCKERHUB_USER --password $DOCKERHUB_APIKEY'
300+
jobs:
301+
- name: Build and Tests
302+
commands:
303+
# Setup Python environment
304+
- sem-version python 3.9
305+
- python3 -m venv _venv && source _venv/bin/activate
306+
307+
# Install ducktape framework and additional dependencies
308+
- pip install ducktape psutil
309+
310+
# Install existing test requirements
311+
- pip install -r requirements/requirements-tests-install.txt
312+
313+
# Build and install confluent-kafka from source
314+
- lib_dir=dest/runtimes/$OS_NAME-$ARCH/native
315+
- tools/wheels/install-librdkafka.sh "${LIBRDKAFKA_VERSION#v}" dest
316+
- export CFLAGS="$CFLAGS -I${PWD}/dest/build/native/include"
317+
- export LDFLAGS="$LDFLAGS -L${PWD}/${lib_dir}"
318+
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/$lib_dir"
319+
- python3 -m pip install -e .
320+
321+
# Store project root for reliable navigation
322+
- PROJECT_ROOT="${PWD}"
323+
324+
# Start Kafka cluster and Schema Registry using dedicated ducktape compose file (KRaft mode)
325+
- cd "${PROJECT_ROOT}/tests/docker"
326+
- docker-compose -f docker-compose.ducktape.yml up -d kafka schema-registry
327+
328+
# Debug: Check container status and logs
329+
- echo "=== Container Status ==="
330+
- docker-compose -f docker-compose.ducktape.yml ps
331+
- echo "=== Kafka Logs ==="
332+
- docker-compose -f docker-compose.ducktape.yml logs kafka | tail -50
333+
334+
# Wait for Kafka to be ready (using PLAINTEXT listener for external access)
335+
- |
336+
timeout 1800 bash -c '
337+
counter=0
338+
until docker-compose -f docker-compose.ducktape.yml exec -T kafka kafka-topics --bootstrap-server localhost:9092 --list >/dev/null 2>&1; do
339+
echo "Waiting for Kafka... (attempt $((counter+1)))"
340+
341+
# Show logs every 4th attempt (every 20 seconds)
342+
if [ $((counter % 4)) -eq 0 ] && [ $counter -gt 0 ]; then
343+
echo "=== Recent Kafka Logs ==="
344+
docker-compose -f docker-compose.ducktape.yml logs --tail=10 kafka
345+
echo "=== Container Status ==="
346+
docker-compose -f docker-compose.ducktape.yml ps kafka
347+
fi
348+
349+
counter=$((counter+1))
350+
sleep 5
351+
done
352+
'
353+
- echo "Kafka cluster is ready!"
354+
355+
# Wait for Schema Registry to be ready
356+
- echo "=== Waiting for Schema Registry ==="
357+
- |
358+
timeout 300 bash -c '
359+
counter=0
360+
until curl -f http://localhost:8081/subjects >/dev/null 2>&1; do
361+
echo "Waiting for Schema Registry... (attempt $((counter+1)))"
362+
363+
# Show logs every 3rd attempt (every 15 seconds)
364+
if [ $((counter % 3)) -eq 0 ] && [ $counter -gt 0 ]; then
365+
echo "=== Recent Schema Registry Logs ==="
366+
docker-compose -f docker-compose.ducktape.yml logs --tail=10 schema-registry
367+
echo "=== Schema Registry Container Status ==="
368+
docker-compose -f docker-compose.ducktape.yml ps schema-registry
369+
fi
370+
371+
counter=$((counter+1))
372+
sleep 5
373+
done
374+
'
375+
- echo "Schema Registry is ready!"
376+
377+
# Run standard ducktape tests with CI bounds
378+
- cd "${PROJECT_ROOT}" && PYTHONPATH="${PROJECT_ROOT}" python tests/ducktape/run_ducktape_test.py
379+
380+
# Cleanup
381+
- cd "${PROJECT_ROOT}/tests/docker" && docker-compose -f docker-compose.ducktape.yml down -v || true
278382
- name: "Packaging"
279383
run:
280384
when: "tag =~ '.*'"
281385
dependencies:
282-
- "Wheels: OSX x64 - Python 3.7-3.12"
283-
- "Wheels: OSX x64 - Python 3.13"
386+
- "Wheels: OSX x64 - Python 3.8-3.12"
387+
- "Wheels: OSX x64 - Python 3.13-3.14"
284388
- "Wheels: OSX arm64 - Python 3.8-3.12"
285-
- "Wheels: OSX arm64 - Python 3.13"
389+
- "Wheels: OSX arm64 - Python 3.13-3.14"
286390
- "Wheels: Linux arm64"
287391
- "Wheels: Linux x64"
288392
- "Wheels: Windows"
@@ -312,6 +416,6 @@ after_pipeline:
312416
- name: SonarQube
313417
commands:
314418
- checkout
315-
- sem-version java 11
419+
- sem-version java 17
316420
- artifact pull workflow coverage.xml
317-
- emit-sonarqube-data --run_only_sonar_scan
421+
- emit-sonarqube-data --enable_sonarqube_enterprise --run_only_sonar_scan

0 commit comments

Comments
 (0)