-
Notifications
You must be signed in to change notification settings - Fork 577
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 arroyo test suite in ducktape #5499
Conversation
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.
Perhaps these test should only run in the nightly. Any opinions on that?
I am in favor of running tests from 3rd party libs on nightly because they can have dependencies that can fill-up space and complicate things on our CI pipeline.
d43c53c
to
2c96216
Compare
Run the arroyo test suite against a redpanda cluster in | ||
a ducktape environment. | ||
|
||
The test suite lives here under tests/ in https://github.com/getsentry/arroyo. |
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.
very cool.
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.
we should respond on twitter once this lands.
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.
Beautiful.
There's only one nit.
EDIT: Whoops, I approved before CI finished. Please wait until that finishes before you merge ;)
@@ -163,6 +163,10 @@ RUN apt update && \ | |||
file && \ | |||
rm -rf /var/lib/apt/lists/* | |||
|
|||
RUN mkdir /root/external_test_suites && \ | |||
git -C /root/external_test_suites clone --depth=1 https://github.com/getsentry/arroyo.git && \ |
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.
based on the rest of the Dockerfile it looks like we try to pin everything to a specific sha1/version
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.
Yeah. It's definitely a trade-off. It's more stable if we pin, but then someone needs to remember to update it manually every now and then. That being said, that test suite doesn't seem to change much over time. I'll pin it to the current tip of the main branch.
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.
yeh, agree about updating. i think we need some out-of-band process by which we periodically upgrade the dependencies. at least this way we keep flakiness minimized
This commit extends the ducktape test container to clone and install arroyo (https://github.com/getsentry/arroyo) in order to run its test suite against a Redpanda cluster.
Pytest is required in order to run the arroyo tests.
This commit adds a ducktape test that runs the arroyo test suite against a redpanda cluster. All test output is logged and test failures are parsed from the pytest output. The test fails if there were pytest failures or if pytest returns an error code indicating that the tests couldn't run.
Failure found #342 |
Cover letter
This PR adds a ducktape test that runs part of the arroyo test suite (not all of the tests run against a live cluster and we're only interested in those).
In order to avoid forking the tests (which leads to license complications and having to maintain the fork) I've made it such that the environment clones the external repository and runs the tests from there.
Unfortunately, the arroyo tests use pytest, which makes it difficult to deal with logging and error reporting. The approach I've taken is to log all the output from the pytest invocation and to parse that for failures.
Perhaps these test should only run in the nightly. Any opinions on that?
Fixes #4575
Notes
force_push:
--depth 1
when cloning the external repoforce_push: