cypress-docker-images icon indicating copy to clipboard operation
cypress-docker-images copied to clipboard

update browsers latest tag

Open bahmutov opened this issue 5 years ago • 8 comments

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

bahmutov avatar Feb 12 '20 20:02 bahmutov

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.

jannnik avatar Mar 06 '20 12:03 jannnik

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

bahmutov avatar Mar 06 '20 14:03 bahmutov

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?

jannnik avatar Mar 06 '20 16:03 jannnik

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?

bahmutov avatar Mar 06 '20 16:03 bahmutov

If you combine the latest Node with the latest Chrome version, you don't have to decide. Or did I get it wrong?

jannnik avatar Mar 06 '20 17:03 jannnik

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.

bahmutov avatar Mar 06 '20 17:03 bahmutov

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.

jennifer-shehane avatar Mar 09 '20 09:03 jennifer-shehane

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.

Kiina avatar Aug 11 '21 18:08 Kiina

We now offer 'latest' tags for cypress/base, cypress/browsers and cypress/included

mjhenkes avatar Apr 07 '23 20:04 mjhenkes