seleniumhq-community / docker-seleniarm

Multi-Arch (arm64/armhf/amd64) Docker images for the Selenium Grid Server
https://hub.docker.com/u/seleniarm
Other
249 stars 26 forks source link

Latest upstream trunk cross platform #56

Open fhoeben opened 9 months ago

fhoeben commented 9 months ago

As discussed in #54 a draft to show how far I got building cross platform images on Ubuntu (Ubuntu also offers arm64 images).

I replaced chrome with chromium from Debian (Ubuntu's packages are based on 'snap') Firefox I get from the 'team mozilla' package repository (Ubuntu's own packages are based on 'snap')

I updated the GitHub action to build/test on both platforms (and removed other actions for now, as I was not interested in those yet). The arm64 test fails for this action, but passes locally on my M1 Mac. I think the issue on GitHub is the emulation that is just TOO slow, but as far as I can tell the actual images work.

I did not get fixed browser versions yet, but that should be doable by supplying a version to their apt-get commands.

Far from finished, but the changes from the base selenium image are also quite small which might make this path easier to get to work (and maintain in the future). The PR looks big, but compared to upstream trunk it is not so big (ignoring the GitHub actions removed for now): https://github.com/fhoeben/docker-seleniarm/commit/a71ea8811aee946384e265fc3a9e30eb76b27244#diff-c7235ebbda8248c044e6b13da481ae97f4a21846ed2341a056b6b873abaa482b

Thanks for contributing to the Docker-Selenium project! A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines, applied for this repository. Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

Motivation and Context

Types of changes

Checklist

jamesmortensen commented 8 months ago

Hi. I think it will help if you can include the circleci configuration. You can refer to https://github.com/seleniumhq-community/docker-seleniarm/tree/ubuntu-base branch in order to see what I've done so far on converting to Ubuntu for the ARM images.

You may also want to keep NodeChrome and NodeChromium as separate images because at the end of the day, they're different browsers, and most people on AMD/Intel hardware will want to test on Google Chrome.

Also, just in case you aren't aware, you can see the build process happening here: https://app.circleci.com/pipelines/github/seleniumhq-community/docker-seleniarm

The builds have to be run on CircleCI because it's faster to build ARM images on ARM hardware, and GitHub Actions doesn't support ARM runners natively (to the best of my knowledge).

fhoeben commented 8 months ago

@jamesmortensen I created https://github.com/SeleniumHQ/docker-selenium/pull/2070 to get chromium image in Selenium's process. That should make it easier to maintain the chromium based images here since the only focus would become arm64 support, instead of also adding 2 node images for chromium

diemol commented 5 months ago

I believe we can close this one.