cypress-docker-images
cypress-docker-images copied to clipboard
update browsers latest tag
When we build new Cypress images with the browser included, we should update the latest
tag, otherwise, it looks very stale on Docker Hub (2 years old cypress/browsers:chrome69
.
Related issue https://github.com/cypress-io/cypress-docker-images/issues/240
We would appreciate the update of the latest
tag as we would like to test with the latest Chrome without manually incrementing the version of the docker image with each chrome update.
So I am little hesitant to automatically update the latest
tag because we know different browser versions behave differently, and for people using latest
to come back one day and see a broken build when nothing has changed is frustrating.
But still, a good idea, since people can always explicitly stick to a tag.
I would need to write some code to ask Docker Hub API for the latest
tag and have a CI job to check and update it if necessary
But it would be only an option to use the latest tag for people with the same request I have. Other users could use images with a fixed version.
Additionally it would be very interesting to have an image with the latest Chrome beta. We are planning to run a smoke test as soon as a new Chrome beta is released. Should I create a new issue for this request?
good point, this morning I added a little bit of functionality to our https://github.com/cypress-io/docker-image-not-found#listtags to get tags for a repo. I plan to add a CircleCI job to this repo, starting with cypress/included
that would check the current latest
tag, fetch its details, see if there are images AFTER it, and if yes, update the latest tag.
Once this is successful, we can think about updating the cypress/browsers
latest tag. I wonder how we should decide what the latest should be - by Node or by Chrome version?
If you combine the latest Node with the latest Chrome version, you don't have to decide. Or did I get it wrong?
But is the latest node 12 or 13?
Sent from my iPhone
On Mar 6, 2020, at 12:21, Jannik Falkner [email protected] wrote:
If you combine the latest Node with the latest Chrome version, you don't have to decide. Or did I get it wrong?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.
If this is implemented, I would prefer it not be part of the 'recommended' flow for Docker users.
While yes, @jannnik, you do understand what you are getting into, many people would run into the situation as gleb described - where Chrome updates behind the scenes, performs differently, and they incorrectly attribute this to Cypress 'just breaking all of a sudden', opening issues saying 'they changed nothing'. It's just a big potential for some misattribution into why their tests fail.
We ran into this ourselves with our own Cypress project where we set up Chrome to always update to latest version in the background. It halted our development process because we couldn't merge the changes we needed just because Chrome updated behind the scenes. We chose to manually increment after this, so as to properly isolate 'Chrome update' failures from other real failures involving the work in the PR.
Is this choice of process a PITA also? Yes, in different ways. Something to consider though for your workflow.
So is this still in scope? The issue with using latest breaking builds isn't only a thing with this image but with every project. Yet every other project publishes a latest tag. And I think all users should be aware of the risk and benefits of using latest
regardless if they are using this container or any other container.
I think it's even more important to have a latest tag with this project based on how often the versions change and how convoluted the tags are. When you want the latest chrome + ff version for local testing you always have to check the repo or dockerhub to get the correct tag. Even looking at the readme table it's not immediately clear which version is actually the latest since the table is kinda reversed in order.
We now offer 'latest' tags for cypress/base
, cypress/browsers
and cypress/included