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
Implement PR workflow for running test262 on babel PRs #10579
Conversation
49dfd2d
to
7b89af5
Compare
There is an existing travis CI job which takes 21m to finish. Running all test262 language tests average 30 minutes. Given that, I'm inclining towards running them on every commit instead of requiring maintainers to trigger it manually. Thoughts @hzoo @nicolo-ribaudo ? |
e8b8d24
to
3f5085e
Compare
a9ccdd7
to
d6a8c02
Compare
The test262 failure with 2 failure tests is a bit concerning as a) my PR shouldn't cause any existing tests to fail and b) it wasn't failing in my previous approach of syncing with master @JLHwung. I think we might need to explore this space a little bit more, or potentially I'm not using it correctly. So I'm going to experiment by leaving the changeset as is, and manually rebase against master. Edit: I should have merged instead of rebase. I lost the status check in the PR but here's the link to the job I am mentioning here: https://app.circleci.com/jobs/github/babel/babel/12410 |
cade957
to
3459540
Compare
While this is running, I do want to note, that I don't think that I've completely mapped out all the error scenarios that can happen (while I've tried to tackle a lot of them in my various babel-test262-runner PRs), and when you factor in the mechanics of running about 40,000 tests on two different branches, and situations like test case timeouts, and other weirdness, and then comparing them together, I can't guarantee that this MVP will not have false negatives. Certainly this can be improved over time. Given the seemingly daunting difficulty in that, I've pivoted my approach to sort of how can this be a useful source of information for the maintainers. While it's a bit disappointing not to always get all green ticks (although I think it'll be green most of the time), I don't think failing the test262 job (in its current form) should block a PR, but rather be a signal for maintainers and contributors to inspect the results and see if they are related or not and make a judgement based on that. We could circle back to running the test262 job only on maintainer approval. Or we can explore other options. I'll defer to the maintainers' judgement on what they'll find most helpful here. @nicolo-ribaudo @JLHwung @hzoo |
3459540
to
b7af496
Compare
@jbhoosreddy Would it be possible to run this workflow automatically on master, and with approval on PRs? Running on master should always be safe, and it won't run on PRs by default since it's not guaranteed that it should pass. |
Yes, absolutely! If that's the consensus, I'll update the PR to do that then. |
10392b5
to
b417fa2
Compare
b417fa2
to
aa9e35f
Compare
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.
Great work!
Thanks 🎉 |
This PR introduces testing of babel transforms with test262 in every PR on each commit. It is a followup to #10556 which runs test262 tests on every commit to master. This PR utilizes changes to babel-test262-runner, here: (babel/babel-test262-runner@399abd...b5eaa57)
A major aspect of the PR workflow is that it compares the test results on a PR against the test results on master. This is because there are frankly too many tests and many esoteric failing tests that to present them to a new contributor seems like an excessive barrier to entry for new contributions. Therefore, we have pivoted to compare the results from the previous master job and show only the results that have changed.
Due to @hzoo's suggestion to focus on testing only
/language
tests, and @JLHwung's babel config caching PR babel/babel-test262-runner#12, we're able to run the tests in about 30m. This. while being a lot, is comparable to the existing job on TravisCI.I also want to highlight authors' of some really cool and helpful packages that I was able to utilize which made this task much easier than implementing from scratch!
Also, also props to @nicolo-ribaudo for the quick turnaround on many PR reviews and help throughout this process!