Skip to content

Commit 2e07b0c

Browse files
authored
Docker: Firefox stable latest version for ARM64 (#2692)
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 70ac588 commit 2e07b0c

11 files changed

+123
-69
lines changed

.github/workflows/helm-chart-test.yml

+21-21
Original file line numberDiff line numberDiff line change
@@ -40,68 +40,68 @@ jobs:
4040
matrix:
4141
include:
4242
- k8s-version: 'v1.26.15'
43-
test-strategy: disabled
4443
cluster: 'minikube'
4544
helm-version: 'v3.11.3'
4645
docker-version: '26.1.4'
47-
python-version: '3.8'
46+
python-version: '3.9'
4847
test-upgrade: true
4948
service-mesh: false
50-
os: ubuntu-24.04
49+
os: ubuntu-22.04
50+
test-strategy: disabled
5151
- k8s-version: 'v1.27.16'
52-
test-strategy: job
5352
cluster: 'minikube'
5453
helm-version: 'v3.12.3'
5554
docker-version: '26.1.4'
5655
python-version: '3.9'
5756
test-upgrade: true
5857
service-mesh: true
59-
os: ubuntu-24.04
58+
os: ubuntu-22.04
59+
test-strategy: job
6060
- k8s-version: 'v1.28.15'
61-
test-strategy: deployment
6261
cluster: 'minikube'
6362
helm-version: 'v3.13.3'
6463
docker-version: '26.1.4'
6564
python-version: '3.10'
6665
test-upgrade: true
6766
service-mesh: true
68-
os: ubuntu-24.04
69-
- k8s-version: 'v1.29.13'
70-
test-strategy: job_https
67+
os: ubuntu-22.04
68+
test-strategy: deployment
69+
- k8s-version: 'v1.29.14'
7170
cluster: 'minikube'
7271
helm-version: 'v3.14.3'
7372
docker-version: '27.5.1'
7473
python-version: '3.11'
7574
test-upgrade: true
7675
service-mesh: false
77-
os: ubuntu-24.04
78-
- k8s-version: 'v1.30.9'
79-
test-strategy: job_hostname
76+
os: ubuntu-22.04
77+
test-strategy: job_https
78+
- k8s-version: 'v1.30.10'
8079
cluster: 'minikube'
8180
helm-version: 'v3.15.4'
8281
docker-version: '27.5.1'
8382
python-version: '3.12'
8483
test-upgrade: true
8584
service-mesh: false
86-
os: ubuntu-24.04
87-
- k8s-version: 'v1.31.5'
88-
test-strategy: deployment_https
85+
os: ubuntu-22.04
86+
test-strategy: job_hostname
87+
- k8s-version: 'v1.31.6'
8988
cluster: 'minikube'
9089
helm-version: 'v3.16.4'
91-
docker-version: '28.0.1'
90+
docker-version: '27.4.1'
9291
python-version: '3.13'
9392
test-upgrade: true
9493
service-mesh: false
95-
os: ubuntu-24.04
96-
- k8s-version: 'v1.32.1'
97-
test-strategy: playwright_connect_grid
94+
os: ubuntu-22.04
95+
test-strategy: deployment_https
96+
- k8s-version: 'v1.32.2'
9897
cluster: 'minikube'
9998
helm-version: 'v3.17.0'
100-
docker-version: '28.0.1'
99+
docker-version: '26.1.4'
101100
python-version: '3.10'
102101
test-upgrade: true
103102
service-mesh: true
104-
os: ubuntu-24.04
103+
os: ubuntu-22.04
104+
test-strategy: playwright_connect_grid
105105
env:
106106
CLUSTER: ${{ matrix.cluster }}
107107
KUBERNETES_VERSION: ${{ matrix.k8s-version }}

.github/workflows/k8s-scaling-test.yml

+30-24
Original file line numberDiff line numberDiff line change
@@ -56,47 +56,53 @@ env:
5656
jobs:
5757
build-and-test:
5858
name: Test K8s
59-
runs-on: ubuntu-24.04
59+
runs-on: ${{ matrix.os }}
6060
strategy:
6161
fail-fast: false
6262
matrix:
6363
include:
64-
- k8s-version: 'v1.31.5'
64+
- k8s-version: 'v1.27.16'
65+
cluster: 'minikube'
66+
helm-version: 'v3.12.3'
67+
docker-version: '26.1.4'
68+
python-version: '3.9'
69+
os: ubuntu-22.04
6570
test-strategy: test_k8s_autoscaling_job_count_strategy_default_in_chaos
71+
- k8s-version: 'v1.28.15'
6672
cluster: 'minikube'
67-
helm-version: 'v3.16.4'
68-
docker-version: '28.0.1'
69-
python-version: '3.13'
70-
- k8s-version: 'v1.31.5'
73+
helm-version: 'v3.13.3'
74+
docker-version: '26.1.4'
75+
python-version: '3.10'
76+
os: ubuntu-22.04
7177
test-strategy: test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions
78+
- k8s-version: 'v1.29.14'
7279
cluster: 'minikube'
73-
helm-version: 'v3.16.4'
74-
docker-version: '28.0.1'
75-
python-version: '3.13'
76-
- k8s-version: 'v1.31.5'
80+
helm-version: 'v3.14.3'
81+
docker-version: '27.5.1'
82+
python-version: '3.11'
83+
os: ubuntu-22.04
7784
test-strategy: test_k8s_autoscaling_job_count_strategy_default
85+
- k8s-version: 'v1.30.10'
7886
cluster: 'minikube'
79-
helm-version: 'v3.16.4'
80-
docker-version: '28.0.1'
81-
python-version: '3.13'
82-
- k8s-version: 'v1.31.5'
87+
helm-version: 'v3.15.4'
88+
docker-version: '27.5.1'
89+
python-version: '3.12'
90+
os: ubuntu-22.04
8391
test-strategy: test_k8s_autoscaling_deployment_count_in_chaos
92+
- k8s-version: 'v1.31.6'
8493
cluster: 'minikube'
8594
helm-version: 'v3.16.4'
86-
docker-version: '28.0.1'
95+
docker-version: '27.4.1'
8796
python-version: '3.13'
88-
- k8s-version: 'v1.31.5'
97+
os: ubuntu-22.04
8998
test-strategy: test_k8s_autoscaling_deployment_count_with_node_max_sessions
99+
- k8s-version: 'v1.32.2'
90100
cluster: 'minikube'
91-
helm-version: 'v3.16.4'
92-
docker-version: '28.0.1'
93-
python-version: '3.13'
94-
- k8s-version: 'v1.31.5'
101+
helm-version: 'v3.17.0'
102+
docker-version: '26.1.4'
103+
python-version: '3.10'
104+
os: ubuntu-22.04
95105
test-strategy: test_k8s_autoscaling_deployment_count
96-
cluster: 'minikube'
97-
helm-version: 'v3.16.4'
98-
docker-version: '28.0.1'
99-
python-version: '3.13'
100106
env:
101107
CLUSTER: ${{ matrix.cluster }}
102108
KUBERNETES_VERSION: ${{ matrix.k8s-version }}

.github/workflows/release-chrome-versions.yml

+9-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
browser-versions:
3232
description: 'List browser version to build. E.g: [130, 131]'
3333
required: true
34-
default: '[97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133]'
34+
default: '[95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134]'
3535
push-image:
3636
description: 'Push image after testing successfully'
3737
required: true
@@ -123,14 +123,21 @@ jobs:
123123
- name: Build Hub image for testing
124124
if: env.REUSE_BASE == 'false'
125125
run: make hub
126-
- name: Test images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
126+
- name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
127127
uses: nick-invision/retry@master
128128
with:
129129
timeout_minutes: 20
130130
max_attempts: 3
131131
retry_wait_seconds: 60
132132
command: |
133133
make test_chrome
134+
- name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
135+
uses: nick-invision/retry@master
136+
with:
137+
timeout_minutes: 20
138+
max_attempts: 3
139+
retry_wait_seconds: 60
140+
command: |
134141
make test_chrome_standalone
135142
- name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
136143
if: env.PUSH_IMAGE == 'true'

.github/workflows/release-edge-versions.yml

+9-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
browser-versions:
3232
description: 'List browser version to build. E.g: [130, 131]'
3333
required: true
34-
default: '[114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133]'
34+
default: '[95, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133]'
3535
push-image:
3636
description: 'Push image after testing successfully'
3737
required: true
@@ -123,14 +123,21 @@ jobs:
123123
- name: Build Hub image for testing
124124
if: env.REUSE_BASE == 'false'
125125
run: make hub
126-
- name: Test images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
126+
- name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
127127
uses: nick-invision/retry@master
128128
with:
129129
timeout_minutes: 20
130130
max_attempts: 3
131131
retry_wait_seconds: 60
132132
command: |
133133
make test_edge
134+
- name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
135+
uses: nick-invision/retry@master
136+
with:
137+
timeout_minutes: 20
138+
max_attempts: 3
139+
retry_wait_seconds: 60
140+
command: |
134141
make test_edge_standalone
135142
- name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
136143
if: env.PUSH_IMAGE == 'true'

.github/workflows/release-firefox-versions.yml

+10-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
browser-versions:
3232
description: 'List browser version to build. E.g: [130, 131]'
3333
required: true
34-
default: '[98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135]'
34+
default: '[98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136]'
3535
push-image:
3636
description: 'Push image after testing successfully'
3737
required: true
@@ -123,14 +123,21 @@ jobs:
123123
- name: Build Hub image for testing
124124
if: env.REUSE_BASE == 'false'
125125
run: make hub
126-
- name: Test images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
126+
- name: Test images Node with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
127+
uses: nick-invision/retry@master
128+
with:
129+
timeout_minutes: 20
130+
max_attempts: 3
131+
retry_wait_seconds: 60
132+
command: |
133+
TEST_FIREFOX_INSTALL_LANG_PACKAGE=false FIREFOX_VERSION=${FIREFOX_VERSION} make test_firefox
134+
- name: Test images Standalone with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
127135
uses: nick-invision/retry@master
128136
with:
129137
timeout_minutes: 20
130138
max_attempts: 3
131139
retry_wait_seconds: 60
132140
command: |
133-
FIREFOX_VERSION=${FIREFOX_VERSION} make test_firefox
134141
FIREFOX_VERSION=${FIREFOX_VERSION} make test_firefox_standalone
135142
- name: Push images with Grid core ${{ env.GRID_VERSION }} and ${{ env.BROWSER_NAME }} v${{ env.BROWSER_VERSION }}
136143
if: env.PUSH_IMAGE == 'true'

Makefile

+4-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ CURRENT_PLATFORM := $(shell if [ `arch` = "aarch64" ] || [ `arch` = "arm64" ]; t
2828
PLATFORMS := $(or $(PLATFORMS),$(shell echo $$PLATFORMS),$(CURRENT_PLATFORM))
2929
SEL_PASSWD := $(or $(SEL_PASSWD),$(SEL_PASSWD),secret)
3030
CHROMIUM_VERSION := $(or $(CHROMIUM_VERSION),$(CHROMIUM_VERSION),latest)
31-
FIREFOX_DOWNLOAD_URL := $(or $(FIREFOX_DOWNLOAD_URL),$(FIREFOX_DOWNLOAD_URL),https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2025/01/2025-01-06-09-47-46-mozilla-central/firefox-135.0a1.en-US.linux-aarch64.deb)
31+
FIREFOX_DOWNLOAD_URL := $(or $(FIREFOX_DOWNLOAD_URL),$(FIREFOX_DOWNLOAD_URL),)
3232
SBOM_OUTPUT := $(or $(SBOM_OUTPUT),$(SBOM_OUTPUT),package_versions.txt)
3333
KEDA_TAG_PREV_VERSION := $(or $(KEDA_TAG_PREV_VERSION),$(KEDA_TAG_PREV_VERSION),2.16.1-selenium-grid)
3434
KEDA_CORE_VERSION := $(or $(KEDA_CORE_VERSION),$(KEDA_CORE_VERSION),2.16.1)
@@ -60,7 +60,9 @@ check_dev_env:
6060

6161
setup_dev_env:
6262
./tests/charts/make/chart_setup_env.sh ; \
63-
make set_containerd_image_store
63+
exit_code=$$? ; \
64+
make set_containerd_image_store ; \
65+
exit $$exit_code ;
6466

6567
set_containerd_image_store:
6668
sudo mkdir -p /etc/docker

NodeFirefox/Dockerfile

+5-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ ARG FIREFOX_VERSION=latest
2121
ARG FIREFOX_DOWNLOAD_URL=""
2222
ARG FIREFOX_LANG_VERSION=${FIREFOX_VERSION}
2323
RUN apt-get update -qqy && \
24-
if [ "$(dpkg --print-architecture)" = "amd64" ]; then \
24+
FIREFOX_MAJOR_VERSION=${FIREFOX_VERSION%%.*} && \
25+
ARCH=$(if [ "$(dpkg --print-architecture)" = "amd64" ]; then echo "x86_64"; else echo "aarch64"; fi) && \
26+
if [ "$(dpkg --print-architecture)" = "amd64" ] || [ $FIREFOX_VERSION = "latest" ] || [ "${FIREFOX_MAJOR_VERSION}" -ge 136 ]; then \
2527
if [ $FIREFOX_VERSION = "latest" ] || [ $FIREFOX_VERSION = "beta-latest" ] || [ $FIREFOX_VERSION = "nightly-latest" ] || [ $FIREFOX_VERSION = "devedition-latest" ] || [ $FIREFOX_VERSION = "esr-latest" ]; then \
2628
/opt/bin/install-firefox-apt.sh \
2729
&& FIREFOX_VERSION=$(echo "-$FIREFOX_VERSION" | sed 's/-latest//') \
@@ -31,9 +33,9 @@ RUN apt-get update -qqy && \
3133
ln -fs $(which firefox$FIREFOX_VERSION) /usr/bin/firefox ; \
3234
fi ; \
3335
else \
34-
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.deb" \
36+
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-$ARCH/en-US/firefox-$FIREFOX_VERSION.deb" \
3537
&& if [ "404" = "$(curl -s -o /dev/null -w "%{http_code}" $FIREFOX_DOWNLOAD_URL)" ]; then \
36-
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-x86_64/en-US/firefox-$FIREFOX_VERSION.tar.bz2" ; \
38+
FIREFOX_DOWNLOAD_URL="https://download-installer.cdn.mozilla.net/pub/firefox/releases/$FIREFOX_VERSION/linux-$ARCH/en-US/firefox-$FIREFOX_VERSION.tar.bz2" ; \
3739
fi ; \
3840
fi \
3941
else \

NodeFirefox/install-firefox-apt.sh

100644100755
File mode changed.

README.md

+1-2
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,7 @@ Similarly, Microsoft does not build Edge (`microsoft-edge`) for Linux/ARM platfo
153153
$ docker run --rm -it -p 4444:4444 -p 5900:5900 -p 7900:7900 --shm-size 2g selenium/standalone-chromium:latest
154154
```
155155

156-
- Mozilla Firefox now is available for Linux/ARM64 via [Nightly channel](https://blog.nightly.mozilla.org/2024/04/19/firefox-nightly-now-available-for-linux-on-arm64/).
157-
The Firefox version in ARM64 will be different with the AMD64 until the stable release is available (Noted: we had workaround by pinning the versions getting from [Firefox download installer](https://download-installer.cdn.mozilla.net/pub/firefox/nightly/). The Firefox (node and standalone) images are available in multi-arch.
156+
- Mozilla Firefox now is available for Linux/ARM64 via APT stable channel from v136+. The Firefox (node and standalone) images are available in multi-arch.
158157

159158
Multi-arch images are tested on CircleCI with resource class Linux/ARM64. See the status below.
160159

tests/build-backward-compatible/browser-matrix.yml

+16
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
matrix:
22
browser:
3+
'136':
4+
EDGE_VERSION: null
5+
CHROME_VERSION: null
6+
FIREFOX_VERSION: 136.0
7+
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
38
'135':
9+
EDGE_VERSION: null
10+
CHROME_VERSION: null
411
FIREFOX_VERSION: 135.0.1
512
FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2025/01/2025-01-06-09-47-46-mozilla-central/firefox-135.0a1.en-US.linux-aarch64.deb
613
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
714
'134':
15+
EDGE_VERSION: null
16+
CHROME_VERSION: google-chrome-stable=134.0.6998.35-1
817
FIREFOX_VERSION: 134.0.2
918
FIREFOX_DOWNLOAD_URL: https://download-installer.cdn.mozilla.net/pub/firefox/nightly/2024/11/2024-11-25-09-40-45-mozilla-central/firefox-134.0a1.en-US.linux-aarch64.deb
1019
FIREFOX_PLATFORMS: linux/amd64,linux/arm64
@@ -157,3 +166,10 @@ matrix:
157166
'97':
158167
CHROME_VERSION: google-chrome-stable=97.0.4692.99-1
159168
FIREFOX_VERSION: 97.0.2
169+
'96':
170+
CHROME_VERSION: google-chrome-stable=96.0.4664.110-1
171+
FIREFOX_VERSION: 96.0.3
172+
'95':
173+
CHROME_VERSION: google-chrome-stable=95.0.4638.69-1
174+
EDGE_VERSION: microsoft-edge-stable=95.0.1020.40-1
175+
FIREFOX_VERSION: 95.0.2

0 commit comments

Comments
 (0)