Provide latest Chrome and Firefox on the build image #131
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.
For example, we can configure actioncable to run it's tests on Chrome and Firefox in the container:
rails/rails@main...zzak:rails:cable-on-image-browsers-integration-test
Another use-case I had was for the bug report templates, where we can test that AV or Action Cable (#50437) renders in a browser. I could also see this useful for integration testing the views and js for Action Text and Active Storage (direct upload, etc).
Saucelabs has been known to be flakey at times, and having the browsers on the image gives us a path to mitigate that. While this does add time to the build step, that should mostly be cached and the nightly builds should make sure we have a fresh cached image to work with on subsequent builds. There is always the risk using "latest", I've experienced in the past where (especially chrome) can break or stop being available and new builds fail. We can always pin the version when that happens, or revert back to saucelabs.
There is also a docker container we pull for selenium with browsers, but I forget what / if we still use it -- this would be a replacement for that as well.
Last thing, Karma is deprecated and I did spend some time to investigate alternatives -- but it's also a good time to consider if we want to keep Saucelabs as well. I was basically trying to port the integration tests to raw qunit with a runner like puppeteer or playwright but I can't remember if I got it working with Saucelabs. How much do we care about macos safari / windows edge?