diff --git a/.github/workflows/cloudberry-backup-ci.yml b/.github/workflows/cloudberry-backup-ci.yml index 5fe3f75e..e1682155 100644 --- a/.github/workflows/cloudberry-backup-ci.yml +++ b/.github/workflows/cloudberry-backup-ci.yml @@ -351,7 +351,22 @@ jobs: make end_to_end 2>&1 | tee "${TEST_LOG_ROOT}/cloudberry-backup-end_to_end.log" ;; s3_plugin_e2e) - curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio -o /tmp/minio + # dl.min.io now returns HTTP 410: MinIO archived the + # open-source Server and Client and no longer serves them from + # that host. The final open-source releases are still + # published as GitHub release assets, so pin them there and + # verify the checksums MinIO publishes next to each binary. + # + # These are plain shell variables on purpose: anything + # exported with a MINIO_ prefix would be picked up as + # configuration by the server started below. + minio_release="RELEASE.2025-09-07T16-13-09Z" + minio_sha256="7c5bd8512c6e966455b1d198209358b2d191c77a83ab377c4073281065fb855f" + mc_release="RELEASE.2025-08-13T08-35-41Z" + mc_sha256="01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891" + + curl -fsSL "https://github.com/minio/minio/releases/download/${minio_release}/minio.linux-amd64.${minio_release}" -o /tmp/minio + echo "${minio_sha256} /tmp/minio" | sha256sum -c - chmod +x /tmp/minio mkdir -p /tmp/minio-data /tmp/minio server --address ":9000" /tmp/minio-data > "${TEST_LOG_ROOT}/minio.log" 2>&1 & @@ -362,7 +377,8 @@ jobs: sleep 1 done - curl -fsSL https://dl.min.io/client/mc/release/linux-amd64/mc -o /tmp/mc + curl -fsSL "https://github.com/minio/mc/releases/download/${mc_release}/mc.linux-amd64.${mc_release}" -o /tmp/mc + echo "${mc_sha256} /tmp/mc" | sha256sum -c - chmod +x /tmp/mc /tmp/mc alias set local http://127.0.0.1:9000 minioadmin minioadmin /tmp/mc mb --ignore-existing local/cloudberry-backup-s3-test