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

Automatically test projects that depend on the project being changed #11815

Closed
tuliren opened this issue Apr 7, 2022 · 5 comments · Fixed by #15783
Closed

Automatically test projects that depend on the project being changed #11815

tuliren opened this issue Apr 7, 2022 · 5 comments · Fixed by #15783

Comments

@tuliren
Copy link
Contributor

tuliren commented Apr 7, 2022

Tell us about the problem you're trying to solve

  • We have a few destinations that use S3, GCS, or Azure as staging areas.
  • Changes from the upstream blob storages can break the staging mode of these destinations.
  • Currently we run the downstream destination tests manually. But one can easily forget about that.

Describe the solution you’d like

  • When we run /test on a PR, CI should automatically trigger tests for all projects that depend on the project being updated. For Java connectors /test task could analyze Gradle dependencies to figure this out. For Python this could potentially trigger a storm of tests if CDK is changed.
  • The original problem that we wanted so solve is that changes in S3/GCS destinations also affect staging destinations, but tests for S3/GCS do not trigger tests for downstream dependencies

Describe the alternative you’ve considered or used

  • a quick workaround would be to have an additional file "also run these tests" in every project that can affect other projects

Additional context

  • N/A

┆Issue is synchronized with this Monday item by Unito

@grishick
Copy link
Contributor

Hey team! Please add your planning poker estimate with ZenHub @tuliren @edgao @subodh1810

@grishick grishick changed the title Auto test staging destinations when there is a change in blob storage Automatically test projects that depend on the project being changed Apr 19, 2022
@tuliren
Copy link
Contributor Author

tuliren commented Apr 19, 2022

Candidate solution:

  1. Use the dependencies task to list all dependencies for the updated connector, and run integration test for connectors that depend on it.
  2. Go through every connector under the connectors directory and parse the build.gradle files to see if a connector depends on the updated connector.
  3. Keep a hard-coded connector dependency list in a file. This is not ideal because it is manual, and the file will probably be out-of-date very quickly.

@grishick
Copy link
Contributor

grishick commented Aug 5, 2022

@alexandr-shegeda @DoNotPanicUA @mkhokh-33 this is related to the discussion we had earlier this week.

@grishick
Copy link
Contributor

grishick commented Aug 5, 2022

I think the first iteration of this solution shouldn't trigger tests for downstream dependencies, but should make a comment on the PR listing the downstream dependencies. E.g.:

Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • destination-A
  • source-B
  • source-C

@suhomud
Copy link
Contributor

suhomud commented Aug 19, 2022

@grishick @tuliren, I opened PR and added Dummy commit to destination-gcs to show the report example.
It used github action for pull_request and python script to parse build.gradle files. Please have a look
PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants