Skip to content

0.11.x backport: ci: fix Rust cache action casing (#3249) + replace MinIO with RustFS (#3273) - #3271

Open
xanderbailey wants to merge 2 commits into
apache:0.11.xfrom
xanderbailey:xb/backport-3249-0.11.x
Open

xanderbailey wants to merge 2 commits into
apache:0.11.xfrom
xanderbailey:xb/backport-3249-0.11.x

Conversation

@xanderbailey

@xanderbailey xanderbailey commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

CI-only backport to 0.11.x of two commits that are mutually blocking on this branch:

Upstream PR Commit Purpose
#3249 832a4eba7a732baebbbd7f76bb6fd6225f1db1e9 Fix Swatinem/rust-cache casing for the ASF actions allowlist
#3273 119fad92c891c95a7819d87e4195407b3f7c0578 Replace MinIO with RustFS for integration tests

Why they are combined

Neither backport can pass CI on its own, so they have to land together:

@xanderbailey xanderbailey changed the title ci: fix Rust cache action casing for ASF allowlist (#3249) 0.11.x backport: ci: fix Rust cache action casing for ASF allowlist (#3249) Sep 24, 2026
* ci: replace MinIO with RustFS for integration tests

`quay.io/minio/minio` no longer allows anonymous pulls, so
`make docker-up` fails and the integration tests cannot start.
DataFusion hit the same failure and switched to RustFS in
apache/datafusion#25706. PyIceberg moved to RustFS earlier in
apache/iceberg-python#3928.

Run `rustfs/rustfs:1.0.0` as the shared S3 service instead. It keeps
the `admin`/`password` credentials, the 9000/9001 ports, and
virtual-hosted-style access through `RUSTFS_SERVER_DOMAINS` and the
bucket aliases. The healthcheck uses `/health/ready`, which waits for
storage and IAM. The `mc` bucket setup becomes `curl --aws-sigv4` run
from the RustFS image, and the public bucket policy is dropped because
no test reads anonymously.

Point the REST fixture, HMS, and Spark at `http://rustfs:9000`, and
rename the MinIO-specific test helpers and the
`ICEBERG_TEST_MINIO_ENDPOINT` override to RustFS.

Closes apache#3272

* ci: use vendor-neutral object-store naming for S3 test service

Rename the RustFS service, hostname, bucket aliases, test helpers and env
var to a generic object-store name (matching PyIceberg), so future
backend swaps only need an image change.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci: fail fast and gate readiness on test bucket creation

Treat any non-200/409 response as a failure instead of ignoring it, and
add a healthcheck so `docker compose up --wait` blocks until the buckets
exist.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci: remove orphan containers on docker-up

Renaming the minio service leaves stale containers holding port 9000 for
anyone with a previously started stack; clean them up automatically.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* ci: make create-buckets a one-shot job

RustFS returns 200 when re-creating an existing bucket, so plain chained
curl -f calls are idempotent. Replace the status-code parsing, marker-file
healthcheck and tail with a one-shot container, and gate spark-iceberg on
its successful completion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: ovoievodin <o_voievodin@apple.com>
Co-authored-by: Kevin Liu <kevin.jq.liu@gmail.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
(cherry picked from commit 119fad9)
@xanderbailey xanderbailey changed the title 0.11.x backport: ci: fix Rust cache action casing for ASF allowlist (#3249) 0.11.x backport: ci: fix Rust cache action casing (#3249) + replace MinIO with RustFS (#3273) Sep 28, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants