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

Integration Tests: adds runtime version skew tests #7575

Open
wants to merge 34 commits into
base: master
Choose a base branch
from

Conversation

JoshVanL
Copy link
Contributor

@JoshVanL JoshVanL commented Mar 1, 2024

Adds v1.13 binary building for integration tests. Integration test cases can now execute tests with v1.13 runtime binaries, making it possible to assert version skew scenarios in custom cases.

As we release new versions, we can add to this list of binaries to support version skew testing. By default, current tree code binaries will continue to be used.

@JoshVanL JoshVanL requested review from a team as code owners March 1, 2024 14:41
Copy link

codecov bot commented Mar 1, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 61.81%. Comparing base (091a204) to head (0f1d849).
Report is 6 commits behind head on master.

Current head 0f1d849 differs from pull request most recent head cb1c445

Please upload reports for the commit cb1c445 to get more accurate results.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7575      +/-   ##
==========================================
+ Coverage   61.39%   61.81%   +0.41%     
==========================================
  Files         265      245      -20     
  Lines       22609    22420     -189     
==========================================
- Hits        13880    13858      -22     
+ Misses       7579     7398     -181     
- Partials     1150     1164      +14     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

s.daprd2 = daprd.New(t,
daprd.WithAppProtocol("grpc"),
daprd.WithAppPort(srv2.Port(t)),
daprd.WithExecOptions(exec.WithVersion(t, "1.13")),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the goal for your skew test PR to eventually write all future version skew tests, and keep adding those files in this manner? Or just for one off testing people can update these values?

Im wondering if the version should be parameterized here or if we should make this file name indicative that its for 1.13

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the idea is that we would keep adding to these tests as and when. We can create things like previous enums if we want.

cicoyle
cicoyle previously approved these changes Mar 1, 2024
Copy link
Contributor

@cicoyle cicoyle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be really nice to use for future versions. Thanks Josh 🚀

@JoshVanL JoshVanL added the autoupdate DaprBot will keep the Pull Request up to date with master branch label Mar 5, 2024
@JoshVanL JoshVanL added this to the v1.14 milestone Mar 5, 2024
@mukundansundar
Copy link
Contributor

Nice addition Josh. Is there a way where we need not repeatedly add the main.go for each future version?

Can we have /previous as a constant and get the previous version to test with as a workflow parameter say 1.13.0 ...
Then we can download the 1.13 source code and build the ITs from that?
OR only the go.mod and keep the daprd, injector etc services main.go constant for all previous versions as of now since we do not have any changes?

@JoshVanL
Copy link
Contributor Author

Nice addition Josh. Is there a way where we need not repeatedly add the main.go for each future version?

Can we have /previous as a constant and get the previous version to test with as a workflow parameter say 1.13.0 ... Then we can download the 1.13 source code and build the ITs from that? OR only the go.mod and keep the daprd, injector etc services main.go constant for all previous versions as of now since we do not have any changes?

There is no great workaround here as the go.mod relies on the main entry point existing to resolve. We also cannot download the code during runtime as this requires downloading assets from the internet during execution of the test. While a bit annoying to need to create mains for every release, I don't think it's a huge amount of work we need to stress over doing 3/4 times a year.

JoshVanL and others added 6 commits April 2, 2024 13:23
Adds v1.13 binary building for integration tests. Integration test cases
can now execute tests with v1.13 runtime binaries, making it possible to
assert version skew scenarios in custom cases.

As we release new versions, we can add to this list of binaries to
support version skew testing. By default, current tree code binaries
will continue to be used.

Signed-off-by: joshvanl <[email protected]>
@codecov-commenter
Copy link

codecov-commenter commented May 24, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 61.81%. Comparing base (091a204) to head (0f1d849).
Report is 8 commits behind head on master.

Current head 0f1d849 differs from pull request most recent head 2052859

Please upload reports for the commit 2052859 to get more accurate results.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7575      +/-   ##
==========================================
+ Coverage   61.39%   61.81%   +0.41%     
==========================================
  Files         265      245      -20     
  Lines       22609    22420     -189     
==========================================
- Hits        13880    13858      -22     
+ Misses       7579     7398     -181     
- Partials     1150     1164      +14     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autoupdate DaprBot will keep the Pull Request up to date with master branch
Projects
Development

Successfully merging this pull request may close these issues.

None yet

5 participants