-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: add integration test with minio #112
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #112 +/- ##
==========================================
- Coverage 87.42% 86.82% -0.61%
==========================================
Files 14 15 +1
Lines 700 736 +36
==========================================
+ Hits 612 639 +27
- Misses 88 97 +9 ☔ View full report in Codecov by Sentry. |
@abyssnlp don't think the ci job is triggered. probably format issue. |
@xushiyan The CI is failing due to this error: |
I've removed the external action since GHA runner has |
@xushiyan All tests (including integration) are green. The labeler is failing due to permissions. I've made the small fix but let me know if this should be done in a different PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for putting this up! Some high-level feedback
- How we plan for
docker/
: we can position it as a sandbox where people can easily spin up some e2e setup and run something, we may want to add more query engines later, so integration test can be part of it, serving as a validation to make sure all components are working. - Right now the docker setup is just providing minio, and the integ test is running natively and connecting to minio container. To align with the plan above, we should move the test into a container itself, which installs crates from the code repo.
- The integ test should also cover a python test case by pip install hudi from the repo
docker/copy_tables.sh
Outdated
find /tmp/data -type d -mindepth 1 -maxdepth 1 -exec mc cp --recursive {} store/$MINIO_TEST_BUCKET \; | ||
|
||
echo ">>> Listing uploaded tables" | ||
mc ls store/$MINIO_TEST_BUCKET |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can this script be incorporated into Dockerfile? it's just a few commands after all. we want to keep things more consolidated
integration_test/src/lib.rs
Outdated
* KIND, either express or implied. See the License for the | ||
* specific language governing permissions and limitations | ||
* under the License. | ||
*/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why create a lib ? it's just to run an application so bin works better? we don't expect another crate to depend on integ test
integration_test/env.toml
Outdated
AWS_ACCESS_KEY_ID="minio" | ||
AWS_SECRET_ACCESS_KEY="minio123" | ||
AWS_ENDPOINT="http://localhost:9000" | ||
INTEGRATION_TEST_S3_BUCKET="test-bucket" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this still needed given there is s3.env
? can those 2 be consolidated?
@abyssnlp are you planning to resume this work? |
Ok, due to time constraint, I'll push this to the next release. |
Description
Adds integration tests with s3-compatible MinIO.
docker/docker-compose.yaml
spins up the minio containerdocker/copy_tables.sh
creates the bucket; unzips, copies and creates the tables in the minio storeintegration_test/env.toml
ci.yml
Notes:
Makefile
or as a separate scripthudi-rs
rust support via datafusionThis closes #81 .
How are the changes test-covered