This is an automated email from the ASF dual-hosted git repository. github-merge-queue[bot] pushed a commit to branch gh-readonly-queue/dev/pr-12478-4fd80db52f401fdd47b826b1ec792d1a6cea1ac4 in repository https://gitbox.apache.org/repos/asf/seatunnel.git
commit cba65b1a6cfa894a85fdcfeeeacd59872f77e600 Author: Goutam Adwant <[email protected]> AuthorDate: Sun Sep 27 13:22:02 2026 +0000 [Fix][CI] Wait for MinIO readiness in S3FileWithFilterIT and fix the benchmark MinIO images (#12478) --- seatunnel-cli/benchmark/README.md | 2 +- seatunnel-cli/benchmark/docker/docker-compose.yml | 9 +++++---- .../seatunnel/e2e/connector/file/s3/S3FileWithFilterIT.java | 5 ++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/seatunnel-cli/benchmark/README.md b/seatunnel-cli/benchmark/README.md index e4d877da6f..5da7e2fcfb 100644 --- a/seatunnel-cli/benchmark/README.md +++ b/seatunnel-cli/benchmark/README.md @@ -171,7 +171,7 @@ equivalence. Keep production prompt tuning separate from corpus changes. | Kafka (KRaft) | `apache/kafka:3.7.0` | `localhost:9092` | PLAINTEXT | topics clicks, order_events, dbz.shop.users (seeded), events, wms.inventory, shop.orders.changelog | | ClickHouse | `clickhouse/clickhouse-server:23.3.13.6` | `localhost:8123` | default / Test@123 | db `bench`: pre-created sink tables | | Elasticsearch | `elasticsearch:8.9.0` | `localhost:9200` | security disabled | — | -| MinIO (S3) | `quay.io/minio/minio` | `localhost:9000` | minioadmin / minioadmin | bucket `bench` | +| MinIO (S3) | `ghcr.io/teableio/minio` (digest-pinned) | `localhost:9000` | minioadmin / minioadmin | bucket `bench` | | Doris *(profile `olap`)* | `apache/doris:doris-all-in-one-2.1.0` | FE 8030 / query 9030 | root / empty | apply `init/doris/01_bench.sql` | | StarRocks *(profile `olap`)* | `starrocks/allin1-ubuntu:3.3.4` | FE 8031 / query 9031 | root / empty | apply `init/doris/01_bench.sql` | diff --git a/seatunnel-cli/benchmark/docker/docker-compose.yml b/seatunnel-cli/benchmark/docker/docker-compose.yml index 67938b3810..04daa9aa3a 100644 --- a/seatunnel-cli/benchmark/docker/docker-compose.yml +++ b/seatunnel-cli/benchmark/docker/docker-compose.yml @@ -145,9 +145,9 @@ services: retries: 30 minio: - # Docker Hub's minio/minio repository no longer serves anonymous/unauthenticated pulls; - # quay.io is MinIO's own registry and mirrors the same tags publicly. - image: quay.io/minio/minio:RELEASE.2024-06-13T22-53-53Z + # minio/minio on Docker Hub and quay.io/minio/minio no longer serve anonymous pulls. Use + # the same digest-pinned mirror of MinIO RELEASE.2025-04-22T22-12-26Z as the S3 E2E tests. + image: ghcr.io/teableio/minio@sha256:a1ea29fa28355559ef137d71fc570e508a214ec84ff8083e39bc5428980b015e container_name: st-bench-minio environment: MINIO_ROOT_USER: minioadmin @@ -163,7 +163,8 @@ services: retries: 30 minio-init: - image: minio/mc:RELEASE.2024-06-12T14-34-03Z + # minio/mc on Docker Hub no longer serves anonymous pulls; the MinIO image above ships mc. + image: ghcr.io/teableio/minio@sha256:a1ea29fa28355559ef137d71fc570e508a214ec84ff8083e39bc5428980b015e container_name: st-bench-minio-init depends_on: minio: diff --git a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-s3-e2e/src/test/java/org/apache/seatunnel/e2e/connector/file/s3/S3FileWithFilterIT.java b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-s3-e2e/src/test/java/org/apache/seatunnel/e2e/connector/file/s3/S3FileWithFilterIT.java index 75ae38621c..ce1bb6a1fa 100644 --- a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-s3-e2e/src/test/java/org/apache/seatunnel/e2e/connector/file/s3/S3FileWithFilterIT.java +++ b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-file-s3-e2e/src/test/java/org/apache/seatunnel/e2e/connector/file/s3/S3FileWithFilterIT.java @@ -77,7 +77,10 @@ public class S3FileWithFilterIT extends SeaTunnelContainer { .withEnv("MINIO_ROOT_USER", "minioadmin") .withEnv("MINIO_ROOT_PASSWORD", "minioadmin") .withCommand("server", "/data") - .waitingFor(Wait.forLogMessage(".*", 1)); + // MinIO logs its first line before it serves S3 requests, and + // S3Utils.initialize() below calls the bucket API right away. Wait for + // MinIO's readiness endpoint, as S3FileConnectDryRunIT does. + .waitingFor(Wait.forHttp("/minio/health/ready").forPort(S3_PORT)); s3Container.start(); S3Utils.initialize( String.format(
