Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .github/workflows/update-dev-beta-browser-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,26 +32,36 @@ jobs:
include:
- browser: chrome
channel: dev
platforms: linux/amd64
- browser: chrome
channel: beta
platforms: linux/amd64
- browser: firefox
channel: dev
platforms: linux/amd64,linux/arm64
- browser: firefox
channel: beta
platforms: linux/amd64,linux/arm64
- browser: edge
channel: dev
platforms: linux/amd64
- browser: edge
channel: beta
platforms: linux/amd64
- browser: chrome-for-testing
channel: dev
platforms: linux/amd64
- browser: chrome-for-testing
channel: beta
platforms: linux/amd64
- browser: chrome-for-testing
channel: canary
platforms: linux/amd64
env:
NAME: ${{ vars.DOCKER_NAMESPACE || 'selenium' }}
BROWSER: ${{ matrix.browser }}
CHANNEL: ${{ matrix.channel }}
PLATFORMS: ${{ matrix.platforms }}

steps:
- name: Checkout code
Expand Down Expand Up @@ -91,8 +101,8 @@ jobs:

- name: Build the Dev/Beta Docker container images
run: |
echo VERSION=$SELENIUM_VERSION make "$BROWSER"_"$CHANNEL" standalone_"$BROWSER"_"$CHANNEL"
VERSION=$SELENIUM_VERSION make "$BROWSER"_"$CHANNEL" standalone_"$BROWSER"_"$CHANNEL"
echo VERSION=$SELENIUM_VERSION PLATFORMS=$PLATFORMS make "$BROWSER"_"$CHANNEL" standalone_"$BROWSER"_"$CHANNEL"
VERSION=$SELENIUM_VERSION PLATFORMS=$PLATFORMS make "$BROWSER"_"$CHANNEL" standalone_"$BROWSER"_"$CHANNEL"

- name: Test the Dev/Beta Docker container images
run: |
Expand Down
2 changes: 2 additions & 0 deletions NodeChrome/install-chrome-for-testing.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ if [ -f "${INSTALL_DIR}/deb.deps" ]; then
sed 's/libasound2\b/libasound2t64/g')
echo "Dependencies: ${DEPS}"
apt-get install -qqy --no-install-recommends ${DEPS}
else
apt-get install -qqy --no-install-recommends ca-certificates fonts-liberation libasound2t64 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libc6 libcairo2 libcups2 libcurl3-gnutls libdbus-1-3 libdrm2 libexpat1 libgbm1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libvulkan1 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 wget xdg-utils
fi

# Cleanup
Expand Down
14 changes: 9 additions & 5 deletions NodeFirefox/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,12 @@ ARG FIREFOX_LANG_VERSION=${FIREFOX_VERSION}
RUN apt-get update -qqy && \
FIREFOX_MAJOR_VERSION=${FIREFOX_VERSION%%.*} && \
ARCH=$(if [ "$(dpkg --print-architecture)" = "amd64" ]; then echo "x86_64"; else echo "aarch64"; fi) && \
if [ "$(dpkg --print-architecture)" = "amd64" ] || [ $FIREFOX_VERSION = "latest" ] || [ "${FIREFOX_MAJOR_VERSION}" -ge 136 ]; then \
# Check if FIREFOX_MAJOR_VERSION is numeric before comparison \
case "$FIREFOX_MAJOR_VERSION" in \
''|*[!0-9]*) IS_NUMERIC=false ;; \
*) IS_NUMERIC=true ;; \
esac && \
if [ "$(dpkg --print-architecture)" = "amd64" ] || [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ] || { [ "$IS_NUMERIC" = "true" ] && [ "${FIREFOX_MAJOR_VERSION}" -ge 136 ]; }; then \
if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then \
/opt/bin/install-firefox-apt.sh \
&& FIREFOX_VERSION=$(echo "-$FIREFOX_VERSION" | sed 's/-latest//') \
Expand All @@ -39,13 +44,12 @@ RUN apt-get update -qqy && \
fi ; \
fi \
else \
if [ ${FIREFOX_VERSION} = "latest" ] && [ ${FIREFOX_DOWNLOAD_URL} = "" ]; then \
FIREFOX_VERSION="nightly-latest" ; \
if [ ${FIREFOX_VERSION} = "latest" ] || [ ${FIREFOX_VERSION} = "beta-latest" ] || [ ${FIREFOX_VERSION} = "nightly-latest" ] || [ ${FIREFOX_VERSION} = "devedition-latest" ] || [ ${FIREFOX_VERSION} = "esr-latest" ] && [ ${FIREFOX_DOWNLOAD_URL} = "" ]; then \
/opt/bin/install-firefox-apt.sh \
&& FIREFOX_VERSION=$(echo "-$FIREFOX_VERSION" | sed 's/-latest//') \
&& apt install -y firefox$FIREFOX_VERSION \
&& INSTALL_VIA_APT=true \
&& if [ $FIREFOX_VERSION = "-nightly" ]; then \
&& if [ $FIREFOX_VERSION = "-beta" ] || [ $FIREFOX_VERSION = "-nightly" ] || [ $FIREFOX_VERSION = "-devedition" ] || [ $FIREFOX_VERSION = "-esr" ]; then \
ln -fs $(which firefox$FIREFOX_VERSION) /usr/bin/firefox ; \
fi ; \
else \
Expand All @@ -57,7 +61,7 @@ RUN apt-get update -qqy && \
if [ "${INSTALL_VIA_APT}" != "true" ]; then \
/opt/bin/install-firefox-package.sh "${FIREFOX_DOWNLOAD_URL}" "${FIREFOX_VERSION}" ; \
fi \
# Download the language pack for Firefox
# Download the language pack for Firefox \
&& /opt/bin/get_lang_package.sh ${FIREFOX_LANG_VERSION} \
# Do one more upgrade to fix possible CVEs from Firefox dependencies
&& apt-get update -qqy \
Expand Down
60 changes: 51 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,11 @@ From image tag based `4.21.0` onwards, the architectures supported by this proje

The following browsers are available in multi-arch images:

| Architecture | Chrome | Chromium | Firefox | Edge |
|:-------------------------:|:------:|:--------:|:-------:|:----:|
| x86_64 (aka amd64) | ✅ | ✅ | ✅ | ✅ |
| aarch64 (aka arm64/armv8) | ❌ | ✅ | ✅ | ❌ |
| armhf (aka arm32/armv7l) | ❌ | ❌ | ❌ | ❌ |
| Architecture | Chrome | Chromium | Firefox | Edge | CfT |
|:-------------------------:|:------:|:--------:|:-------:|:----:|-----|
| x86_64 (aka amd64) | ✅ | ✅ | ✅ | ✅ | ✅ |
| aarch64 (aka arm64/armv8) | ❌ | ✅ | ✅ | ❌ | ❌ |
| armhf (aka arm32/armv7l) | ❌ | ❌ | ❌ | ❌ | ❌ |

Note:

Expand All @@ -168,6 +168,8 @@ Note:
- Google does not build Chrome (`google-chrome`) for Linux/ARM platforms. Hence, the Chrome (node and standalone) images are only available for AMD64.
Similarly, Microsoft does not build Edge (`microsoft-edge`) for Linux/ARM platforms.

- We also supply Chrome for Testing (CfT), but it is only available for Linux/AMD64.

- For Linux/ARM use the open source Chromium browser. The Chromium (node and standalone) images are available in multi-arch.

```bash
Expand Down Expand Up @@ -250,13 +252,13 @@ Here are the instructions to run them in Standalone mode:
**Chrome Beta:**

```bash
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:beta
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:beta
```

**Chrome Dev:**

```bash
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:dev
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome:dev
```

**Firefox Beta:**
Expand All @@ -274,13 +276,31 @@ $ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalon
**Edge Beta:**

```bash
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:beta
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:beta
```

**Edge Dev:**

```bash
$ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:dev
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-edge:dev
```

**Chrome for Testing Beta:**

```bash
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome-for-testing:beta
```

**Chrome for Testing Dev:**

```bash
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome-for-testing:dev
```

**Chrome for Testing Canary:**

```bash
$ docker run --platform linux/amd64 --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalone-chrome-for-testing:canary
```

### Dev and Beta on the Grid
Expand All @@ -293,6 +313,7 @@ $ docker run --rm -it -p 4444:4444 -p 7900:7900 --shm-size 2g selenium/standalon
services:
chrome:
image: selenium/node-chrome:beta
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
Expand All @@ -301,6 +322,7 @@ services:

edge:
image: selenium/node-edge:beta
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
Expand All @@ -315,6 +337,15 @@ services:
environment:
- SE_EVENT_BUS_HOST=selenium-hub

chrome-for-testing:
image: selenium/node-chrome-for-testing:beta
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub

selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
Expand All @@ -332,6 +363,7 @@ services:
services:
chrome:
image: selenium/node-chrome:dev
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
Expand All @@ -340,6 +372,7 @@ services:

edge:
image: selenium/node-edge:dev
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
Expand All @@ -354,6 +387,15 @@ services:
environment:
- SE_EVENT_BUS_HOST=selenium-hub

chrome-for-testing:
image: selenium/node-chrome-for-testing:dev
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub

selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
Expand Down
9 changes: 9 additions & 0 deletions docker-compose-v3-beta-channel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,15 @@ services:
environment:
- SE_EVENT_BUS_HOST=selenium-hub

chrome-for-testing:
image: selenium/node-chrome-for-testing:beta
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub

selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
Expand Down
9 changes: 9 additions & 0 deletions docker-compose-v3-dev-channel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,15 @@ services:
environment:
- SE_EVENT_BUS_HOST=selenium-hub

chrome-for-testing:
image: selenium/node-chrome-for-testing:dev
platform: linux/amd64
shm_size: 2gb
depends_on:
- selenium-hub
environment:
- SE_EVENT_BUS_HOST=selenium-hub

selenium-hub:
image: selenium/hub:latest
container_name: selenium-hub
Expand Down
3 changes: 3 additions & 0 deletions tests/build-backward-compatible/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,6 @@ def recursive_merge(dict1, dict2):
if browser_name == "chrome" or browser_name == "all":
CHROME_VERSION = matrix["browser"][browser_version]["CHROME_VERSION"]
f.write(f"CHROME_VERSION={CHROME_VERSION}")
if browser_name == "chrome-for-testing" or browser_name == "all":
CFT_VERSION = matrix["browser"][browser_version]["CFT_VERSION"]
f.write(f"CFT_VERSION={CFT_VERSION}")
Loading