-
Notifications
You must be signed in to change notification settings - Fork 28
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
Do not allow Fallback Mode when the CI node was retried to avoid running the wrong set of tests #100
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…allback mode was disabled with KNAPSACK_PRO_FALLBACK_MODE_ENABLED=false
ArturT
added a commit
to KnapsackPro/rails-app-with-knapsack_pro
that referenced
this pull request
Mar 1, 2020
… started on retried CI node See more in KnapsackPro/knapsack_pro-ruby#100
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
You run tests in Queue Mode with flag
KNAPSACK_PRO_FIXED_TEST_SUITE_SPLIT=true
or Regular Mode with the flagKNAPSACK_PRO_FIXED_TEST_SUITE_SPLIT=true
(default).How to reproduce race condition:
Solution
knapsack_pro should not allow running tests in Fallback Mode in the case when CI node was retried.
Some of CI providers expose ENV variable that knapsack_pro can read so it will know that Fallback Mode is not allowed.
This PR adds support for Buildkite CI env var
BUILDKITE_RETRY_COUNT
that has value1
when CI node was retried.How to fix your CI config
KNAPSACK_PRO_CI_NODE_RETRY_COUNT=1
when failed CI node is restarted.If you can't do it then please don't use retrying single failed CI node. Instead, you should retry the whole CI build to be sure that the whole test suite is passing green. In the case of Fallback Mode starting on any parallel CI nodes the knapsack_pro ensures each test file is executed at least once so you can be sure the whole test suite is green (passing).
If you really need to use retry failed CI node then you can disable fallback mode completely
KNAPSACK_PRO_FALLBACK_MODE_ENABLED=false
. Thanks to that tests won't run when a connection with Knapsack Pro API is lost. Instead, exception will be raised.