-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add integration upgrade test on older version #5784
Conversation
This commit addes the integration test on older version to prevent regression of current changes.
Actually it worked (the upgrade test failed and caught it). Just that the logs are not easy to find. But essentially the UI could be better in prow.
|
/test check-pr-has-kind-label |
@lbernick: The specified target(s) for
The following commands are available to trigger optional jobs:
Use In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Updated the test case to prove this workable, and test case updated at https://github.com/JeromeJu/pipeline/tree/upgrade-regression-test. PTAL @lbernick 🙏 |
@@ -46,12 +46,15 @@ set +o pipefail | |||
header "Install the previous release of Tekton pipeline $PREVIOUS_PIPELINE_VERSION" | |||
install_pipeline_crd_version $PREVIOUS_PIPELINE_VERSION | |||
|
|||
failed=0 | |||
# The integration test for the older version to prevent regression on existing changes. | |||
go_test_e2e -timeout=20m ./test || failed=1 |
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.
It would be nice to update the initial comments (lines 21+) and describe what this script aims to test.
If I read this correctly, what you are doing here is to running the tests from main
against the latest release of Tekton
.
Unless tests are smart enough to skip themselves if a feature they rely on is not available, this test has a good chance of failing.
What we might consider doing is to run the tests from the latest release against main
, which would ensure that no backward incompatible change was done.
Since there are cases where we do backward incompatible changes (in alpha and beta API versions, after the deprecation period), in these few cases we would have to call this out specifically in the tests, for instance we could have a mechanism to tell the tests to skip if the version of the target Tekton installation is greater than a certain value.
This would still require to go backk and update the tests from the released versions though. An alternative could be to maintain in this script a version dependent exclusion list, to be passed to the go test
command, with comments explaining the reason for the skip.
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.
Note that we don't necessarily need to run all the test in the old "released" version 👼🏼. We just need to run enough testing to make sure it works (because ideally it runs a released version, that should have had all its own test run and successful when we released), upgrade and run the main
test on the upgraded instance to make sure it behave as intended. So we could have a "light", relatively safe, test suite for that part.
@JeromeJu: The following tests failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Changes
This commit adds the integration test on older version to prevent regression of current changes.
To prove that this PR could catch the regression:
pipelineRunSpec.taskRunSpecs.metadata
.Test case for regression:
./test/e2e-tests-upgrade.sh
, expect/kind misc
fixes: #5782 case i
Submitter Checklist
As the author of this PR, please check off the items in this checklist:
functionality, content, code)
/kind <type>
. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tepRelease Notes