-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Conduct Exhaustive Testing in CI #3781
base: master
Are you sure you want to change the base?
Conversation
9250bac
to
ba35965
Compare
This prevents merging a PR that passess at test time and fails at release time, such as #3780.
ba35965
to
e637e30
Compare
e637e30
to
eb20338
Compare
To be honest, I don't quite agree with these changes as I don't see what problem do they solve. The post-merge is expected to fail sometimes because it runs tests in different browsers which we can't do in the PRs without exposing BrowserStack/SauceLabs credentials. Otherwise, I think the current workflows sufficiently cover different OS and Node versions without wasting resources on redundant combinations. The failure you refer to looks like a temporary BrowserStack glitch unrelated to #3780 and was resolved by re-running the job. Not sure why the first two attempts failed, but it does not look like it was related to the changes from that PR. |
I think Yaroslav raises a good point. The value of incremental test coverage needs to be considered against the relative cost (maintenance of the coverage + compute resources + more time spent waiting for tests to finish). I'd be interested to hear if you're still interested in pursuing this Jonathan, and if so, why. |
I agree with @devoto13 in that the way it is configured now, we cannot conduct pre-merge testing in SauceLabs and BrowserStack. However, I propose a workaround for that in #3786. Let's continue the conversation on this topic there. On the other point that @devoto13 raises, about our current testing being sufficient in the environment combinations (Node.js versions and OSs), I partially disagree. I encountered that commitlint fails in windows currently, so contributors could not run it if working in that OS. We were not aware of this because we do not conduct linting in Windows currently. So I think adding the combinations is valuable. Also, addressing @mtrea 's comment about computing resources I think we are way below reaching the GitHub actions computing time we have. In regards to waiting for tests, we could parallelize the other combinations of tests. So, if you both agree, I can repurpose this CL to only expand the environment combinations for our testing workflow and drop making BrowserStack mandatory for now. WDYT @devoto13 and @mtrea ? |
Do you refer to the My assumption is that contributors would normally use latest LTS Node (not the oldest supported Node) when developing, so we don't really need to test our dev-tools (e.g. I won't block if you really want to run dev-tools on all Node versions, but I still think that it is wasteful and has little to no value. |
Yes. I am referring to that step! Why was it not intended to run on Windows? I thought it would. After all we have specified the workflow to use Bash, even on Windows.
I agree on your point about the Node.js version; let's only test our dev-tools in the LTS one. However, I also want to ensure that developers on Windows can run them. WDYT @devoto13? |
Yeah-yeah, I meant cmd when saying Windows. It will indeed work in bash on Windows.
Not sure how common it is to use |
Since CI does not conduct all tests in all environments (OS and Node.js version) it can miss failures, such as what happened with #3780. This will ensure that is less likely to happen.