Skip to content
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

Run datafusion-examples when start CI #8018

Closed
smallzhongfeng opened this issue Nov 1, 2023 · 5 comments · Fixed by #8060
Closed

Run datafusion-examples when start CI #8018

smallzhongfeng opened this issue Nov 1, 2023 · 5 comments · Fixed by #8060
Labels
enhancement New feature or request

Comments

@smallzhongfeng
Copy link
Contributor

Is your feature request related to a problem or challenge?

Currently, we have not verified the accuracy of the test classes in the datafusion-example directory, so we should test it while running ci. Reduce the probability of coding errors

Describe the solution you'd like

The current idea may be relatively simple. I will create two directories, one named external_storage and one named flight_sql. External_storage will contain test cases that require external storage, and flight_sql will contain flight-related test cases. When I run my tests I skip these two directories.

Describe alternatives you've considered

No response

Additional context

No response

@smallzhongfeng smallzhongfeng added the enhancement New feature or request label Nov 1, 2023
@smallzhongfeng
Copy link
Contributor Author

cc @alamb let me know what you think. Thanks

@devinjdangelo
Copy link
Contributor

This sounds like a good idea to me, but will take a little work in at least one case...

The example showing writing to S3 won't work in CI out of the box since it requires specifying a bucket and credentials with write access. Public write access is not appropriate here, so we would need a set up to securely pass creds to the ci pipeline.

We could also just skip this one example.

@smallzhongfeng
Copy link
Contributor Author

This sounds like a good idea to me, but will take a little work in at least one case...

The example showing writing to S3 won't work in CI out of the box since it requires specifying a bucket and credentials with write access. Public write access is not appropriate here, so we would need a set up to securely pass creds to the ci pipeline.

We could also just skip this one example.

Yes, I also think I should skip these tests that rely on external storage.

@alamb
Copy link
Contributor

alamb commented Nov 2, 2023

External_storage will contain test cases that require external storage, and flight_sql will contain flight-related test cases. When I run my tests I skip these two directories.

Another option would be to use crate features -- and have two new features like flight and external_storage that default to on, but are not enabled in CI

@smallzhongfeng
Copy link
Contributor Author

External_storage will contain test cases that require external storage, and flight_sql will contain flight-related test cases. When I run my tests I skip these two directories.

Another option would be to use crate features -- and have two new features like flight and external_storage that default to on, but are not enabled in CI

Sounds great! I try the way you said, but it seems fail. It throw

  consider adding a `main` function to `datafusion-examples/examples/dataframe-to-s3.rs`

I don’t know if I understand what you mean. I added the feature to the test class dataframe-to-s3.rs. like this:

#[cfg(feature = "external_service")]
#[tokio::main]
async fn main() -> Result<()> {
    // create local execution context
    let ctx = SessionContext::new();

...

It couldn't find the specific runtime. I was wondering if I need to encapsulate some logic into a method and then define the feature on this method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants