Skip to content

Commit 4f7b9b9

Browse files
committed
[ci] Tests run on Linux arm64 hosted runners
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent 575723a commit 4f7b9b9

File tree

6 files changed

+147
-45
lines changed

6 files changed

+147
-45
lines changed

.circleci/config.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,6 @@ version: 2.1
33
workflows:
44
build-and-test-multi-arch:
55
jobs:
6-
- kubernetes-test:
7-
name: "K8s test - Playwright Connect Autoscaling Grid"
8-
platforms: linux/arm64
9-
machine-type: ubuntu2204arm64large
10-
k8s-version: 'v1.25.16'
11-
test-strategy: playwright_connect_grid
12-
cluster: 'minikube'
13-
helm-version: 'v3.11.3'
14-
docker-version: '24.0.9'
15-
test-upgrade: true
166
- kubernetes-test:
177
name: "K8s test - Autoscaling disabled"
188
platforms: linux/arm64
@@ -47,7 +37,7 @@ workflows:
4737
name: "K8s test - Autoscaling Jobs - HTTPS"
4838
platforms: linux/arm64
4939
machine-type: ubuntu2204arm64large
50-
k8s-version: 'v1.29.12'
40+
k8s-version: 'v1.29.13'
5141
test-strategy: job_https
5242
cluster: 'minikube'
5343
helm-version: 'v3.14.3'
@@ -57,7 +47,7 @@ workflows:
5747
name: "K8s test - Autoscaling Jobs - Ingress hostname"
5848
platforms: linux/arm64
5949
machine-type: ubuntu2204arm64large
60-
k8s-version: 'v1.30.8'
50+
k8s-version: 'v1.30.9'
6151
test-strategy: job_hostname
6252
cluster: 'minikube'
6353
helm-version: 'v3.15.4'
@@ -67,12 +57,22 @@ workflows:
6757
name: "K8s test - Autoscaling Deployments - HTTPS"
6858
platforms: linux/arm64
6959
machine-type: ubuntu2204arm64large
70-
k8s-version: 'v1.31.4'
60+
k8s-version: 'v1.31.5'
7161
test-strategy: deployment_https
7262
cluster: 'minikube'
7363
helm-version: 'v3.16.4'
7464
docker-version: '27.4.1'
7565
test-upgrade: true
66+
- kubernetes-test:
67+
name: "K8s test - Playwright Connect Autoscaling Grid"
68+
platforms: linux/arm64
69+
machine-type: ubuntu2204arm64large
70+
k8s-version: 'v1.32.1'
71+
test-strategy: playwright_connect_grid
72+
cluster: 'minikube'
73+
helm-version: 'v3.17.0'
74+
docker-version: '26.1.4'
75+
test-upgrade: true
7676
- docker-test:
7777
name: "Docker test - Use random user (true)"
7878
test-strategy: test

.github/actions/get-latest-upstream/action.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,20 @@ runs:
1818
shell: bash
1919
run: |
2020
sudo apt update
21-
sudo apt install gh
22-
echo "${{ inputs.gh_cli_token }}" | gh auth login --with-token
21+
sudo apt install jq
22+
AUTH_HEADER="Authorization: token ${{ inputs.gh_cli_token }}"
2323
if [ "${{ inputs.release }}" = "true" ]; then
2424
echo "Getting the latest stable release."
25-
RELEASE=$(gh release list -R SeleniumHQ/selenium | grep -v nightly | awk '{ print $4 }' | head -1)
25+
RELEASE=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/SeleniumHQ/selenium/releases | jq -r '[.[] | select(.prerelease == false)] | .[0].tag_name')
2626
else
2727
echo "Getting the latest Nightly release."
28-
RELEASE=$(gh release list -R SeleniumHQ/selenium | grep nightly | awk '{ print $3 }' | head -1)
28+
RELEASE=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/SeleniumHQ/selenium/releases | jq -r '[.[] | select(.prerelease == true)] | .[0].tag_name')
2929
if [ -z "${RELEASE}" ]; then
3030
echo "Nightly release not found, getting the latest stable release."
31-
RELEASE=$(gh release list -R SeleniumHQ/selenium | grep -v nightly | awk '{ print $4 }' | head -1)
31+
RELEASE=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/SeleniumHQ/selenium/releases | jq -r '[.[] | select(.prerelease == false)] | .[0].tag_name')
3232
fi
3333
fi
34-
jar_file=$(gh release view -R SeleniumHQ/selenium ${RELEASE} | grep jar | awk '{ print $2 }' | tail -n 1)
34+
jar_file=$(curl -s -H "$AUTH_HEADER" https://api.github.com/repos/SeleniumHQ/selenium/releases/tags/${RELEASE} | jq -r '.assets[] | select(.name | endswith(".jar")) | .name' | tail -n 1)
3535
echo "Server package: ${jar_file}"
3636
VERSION=$(echo $jar_file | sed 's/selenium-server-//;s/\.jar//')
3737
echo "BASE_RELEASE=${RELEASE} | BASE_VERSION=${VERSION} | VERSION=${VERSION}"

.github/workflows/docker-test.yml

Lines changed: 99 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ permissions:
2929
jobs:
3030
build-and-test:
3131
name: Test Docker Selenium
32-
runs-on: ubuntu-24.04
32+
runs-on: ${{ matrix.os }}
3333
strategy:
3434
fail-fast: false
3535
matrix:
@@ -38,38 +38,111 @@ jobs:
3838
use-random-user: true
3939
test-video: false
4040
build-all: true
41+
os: ubuntu-24.04
4142
- test-strategy: test
4243
use-random-user: false
4344
test-video: false
4445
build-all: true
46+
os: ubuntu-24.04
4547
- test-strategy: test_video
4648
use-random-user: false
4749
test-video: true
4850
build-all: false
51+
os: ubuntu-24.04
4952
- test-strategy: test_video_dynamic_name
5053
use-random-user: false
5154
test-video: true
5255
build-all: false
56+
os: ubuntu-24.04
5357
- test-strategy: test_video_standalone
5458
use-random-user: false
5559
test-video: true
5660
build-all: false
61+
os: ubuntu-24.04
5762
- test-strategy: test_node_docker
5863
use-random-user: false
5964
test-video: true
6065
build-all: false
66+
os: ubuntu-24.04
6167
- test-strategy: test_standalone_docker
6268
use-random-user: false
6369
test-video: true
6470
build-all: false
71+
os: ubuntu-24.04
6572
- test-strategy: test_parallel
6673
use-random-user: false
6774
test-video: false
6875
build-all: false
76+
os: ubuntu-24.04
6977
- test-strategy: test_node_relay
7078
use-random-user: false
7179
test-video: false
7280
build-all: false
81+
os: ubuntu-24.04
82+
###
83+
- test-strategy: test
84+
use-random-user: true
85+
test-video: false
86+
build-all: true
87+
os: ubuntu-24.04-arm
88+
firefox-install-lang-package: false
89+
enable-managed-downloads: false
90+
- test-strategy: test
91+
use-random-user: false
92+
test-video: false
93+
build-all: true
94+
os: ubuntu-24.04-arm
95+
firefox-install-lang-package: false
96+
enable-managed-downloads: false
97+
- test-strategy: test_video
98+
use-random-user: false
99+
test-video: true
100+
build-all: false
101+
os: ubuntu-24.04-arm
102+
firefox-install-lang-package: true
103+
enable-managed-downloads: true
104+
- test-strategy: test_video_dynamic_name
105+
use-random-user: false
106+
test-video: true
107+
build-all: false
108+
os: ubuntu-24.04-arm
109+
firefox-install-lang-package: true
110+
enable-managed-downloads: true
111+
- test-strategy: test_video_standalone
112+
use-random-user: false
113+
test-video: true
114+
build-all: false
115+
os: ubuntu-24.04-arm
116+
firefox-install-lang-package: true
117+
enable-managed-downloads: true
118+
- test-strategy: test_node_docker
119+
use-random-user: false
120+
test-video: true
121+
build-all: false
122+
os: ubuntu-24.04-arm
123+
firefox-install-lang-package: true
124+
enable-managed-downloads: false
125+
- test-strategy: test_standalone_docker
126+
use-random-user: false
127+
test-video: true
128+
build-all: false
129+
os: ubuntu-24.04-arm
130+
firefox-install-lang-package: true
131+
enable-managed-downloads: true
132+
- test-strategy: test_parallel
133+
use-random-user: false
134+
test-video: false
135+
build-all: false
136+
os: ubuntu-24.04-arm
137+
firefox-install-lang-package: false
138+
enable-managed-downloads: true
139+
- test-strategy: test_node_relay
140+
use-random-user: false
141+
test-video: false
142+
build-all: false
143+
os: ubuntu-24.04-arm
144+
firefox-install-lang-package: true
145+
enable-managed-downloads: true
73146
steps:
74147
- name: Free Disk Space (Ubuntu)
75148
uses: jlumbroso/free-disk-space@main
@@ -96,7 +169,7 @@ jobs:
96169
python-version: '3.11'
97170
check-latest: true
98171
- name: Enable KVM
99-
if: matrix.test-strategy == 'test_node_relay'
172+
if: matrix.test-strategy == 'test_node_relay' && contains(matrix.os, 'arm') == false
100173
run: |
101174
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
102175
sudo udevadm control --reload-rules
@@ -143,19 +216,41 @@ jobs:
143216
LOG_LEVEL: ${{ github.event.inputs.log-level || 'INFO' }}
144217
TEST_PARALLEL_HARDENING: ${{ github.event.inputs.parallel-hardening || 'true' }}
145218
REQUEST_TIMEOUT: ${{ github.event.inputs.request-timeout || '400' }}
146-
- name: Run Docker Compose to ${{ matrix.test-strategy }}
219+
- name: Set environment variables
220+
run: |
221+
TEST_FIREFOX_INSTALL_LANG_PACKAGE=${{ matrix.firefox-install-lang-package || '' }}
222+
if [ -n "${TEST_FIREFOX_INSTALL_LANG_PACKAGE}" ]; then
223+
echo "TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE}" >> $GITHUB_ENV
224+
fi
225+
SELENIUM_ENABLE_MANAGED_DOWNLOADS=${{ matrix.enable-managed-downloads || '' }}
226+
if [ -n "${SELENIUM_ENABLE_MANAGED_DOWNLOADS}" ]; then
227+
echo "SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS}" >> $GITHUB_ENV
228+
fi
229+
- name: Run Docker Compose to ${{ matrix.test-strategy }} on ${{ matrix.os }}
230+
if: contains(matrix.os, 'arm') == false
147231
uses: nick-invision/retry@master
148232
with:
149233
timeout_minutes: 40
150234
max_attempts: 2
151235
retry_wait_seconds: 60
152236
command: |
153237
USE_RANDOM_USER_ID=${{ matrix.use-random-user }} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make ${{ matrix.test-strategy }}
238+
- name: Run Docker Compose to ${{ matrix.test-strategy }} on ${{ matrix.os }}
239+
if: contains(matrix.os, 'arm') == true
240+
uses: nick-invision/retry@master
241+
with:
242+
timeout_minutes: 40
243+
max_attempts: 2
244+
retry_wait_seconds: 60
245+
command: |
246+
USE_RANDOM_USER_ID=${{ matrix.use-random-user }} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} \
247+
TEST_FIREFOX_INSTALL_LANG_PACKAGE=${TEST_FIREFOX_INSTALL_LANG_PACKAGE} SELENIUM_ENABLE_MANAGED_DOWNLOADS=${SELENIUM_ENABLE_MANAGED_DOWNLOADS} \
248+
make ${{ matrix.test-strategy }}
154249
- name: Upload recorded video
155250
if: matrix.test-video == true
156251
uses: actions/upload-artifact@main
157252
with:
158-
name: "${{ matrix.test-strategy }}_artifacts"
253+
name: "${{ matrix.test-strategy }}_artifacts_${{ matrix.os }}"
159254
path: ./tests/videos/
160255
- name: Clean up Docker
161256
if: always()

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

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,11 @@ permissions:
3434
jobs:
3535
build-and-test:
3636
name: Test K8s
37-
runs-on: ubuntu-24.04
37+
runs-on: ${{ matrix.os }}
3838
strategy:
3939
fail-fast: false
4040
matrix:
4141
include:
42-
- k8s-version: 'v1.25.16'
43-
test-strategy: playwright_connect_grid
44-
cluster: 'minikube'
45-
helm-version: 'v3.11.3'
46-
docker-version: '26.1.4'
47-
python-version: '3.8'
48-
test-upgrade: true
49-
service-mesh: true
5042
- k8s-version: 'v1.26.15'
5143
test-strategy: disabled
5244
cluster: 'minikube'
@@ -55,6 +47,7 @@ jobs:
5547
python-version: '3.8'
5648
test-upgrade: true
5749
service-mesh: false
50+
os: ubuntu-24.04
5851
- k8s-version: 'v1.27.16'
5952
test-strategy: job
6053
cluster: 'minikube'
@@ -63,6 +56,7 @@ jobs:
6356
python-version: '3.9'
6457
test-upgrade: true
6558
service-mesh: true
59+
os: ubuntu-24.04
6660
- k8s-version: 'v1.28.15'
6761
test-strategy: deployment
6862
cluster: 'minikube'
@@ -71,30 +65,43 @@ jobs:
7165
python-version: '3.10'
7266
test-upgrade: true
7367
service-mesh: true
74-
- k8s-version: 'v1.29.12'
68+
os: ubuntu-24.04
69+
- k8s-version: 'v1.29.13'
7570
test-strategy: job_https
7671
cluster: 'minikube'
7772
helm-version: 'v3.14.3'
7873
docker-version: '26.1.4'
7974
python-version: '3.11'
8075
test-upgrade: true
8176
service-mesh: false
82-
- k8s-version: 'v1.30.8'
77+
os: ubuntu-24.04
78+
- k8s-version: 'v1.30.9'
8379
test-strategy: job_hostname
8480
cluster: 'minikube'
8581
helm-version: 'v3.15.4'
8682
docker-version: '26.1.4'
8783
python-version: '3.12'
8884
test-upgrade: true
8985
service-mesh: false
90-
- k8s-version: 'v1.31.4'
86+
os: ubuntu-24.04
87+
- k8s-version: 'v1.31.5'
9188
test-strategy: deployment_https
9289
cluster: 'minikube'
9390
helm-version: 'v3.16.4'
9491
docker-version: '27.4.1'
9592
python-version: '3.13'
9693
test-upgrade: true
9794
service-mesh: false
95+
os: ubuntu-24.04
96+
- k8s-version: 'v1.32.1'
97+
test-strategy: playwright_connect_grid
98+
cluster: 'minikube'
99+
helm-version: 'v3.17.0'
100+
docker-version: '26.1.4'
101+
python-version: '3.10'
102+
test-upgrade: true
103+
service-mesh: true
104+
os: ubuntu-24.04
98105
env:
99106
CLUSTER: ${{ matrix.cluster }}
100107
KUBERNETES_VERSION: ${{ matrix.k8s-version }}
@@ -199,7 +206,7 @@ jobs:
199206
if: always()
200207
uses: actions/upload-artifact@main
201208
with:
202-
name: "${{ env.ARTIFACT_NAME }}_${{ env.CHART_FILE_NAME }}"
209+
name: "${{ env.ARTIFACT_NAME }}_${{ env.CHART_FILE_NAME }}_${{ matrix.os }}"
203210
path: ${{ env.CHART_PACKAGE_PATH }}
204211
- name: Upload chart test artifacts
205212
if: always()

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,37 +61,37 @@ jobs:
6161
fail-fast: false
6262
matrix:
6363
include:
64-
- k8s-version: 'v1.31.4'
64+
- k8s-version: 'v1.31.5'
6565
test-strategy: test_k8s_autoscaling_job_count_strategy_default_in_chaos
6666
cluster: 'minikube'
6767
helm-version: 'v3.16.4'
6868
docker-version: '27.4.1'
6969
python-version: '3.13'
70-
- k8s-version: 'v1.31.4'
70+
- k8s-version: 'v1.31.5'
7171
test-strategy: test_k8s_autoscaling_job_count_strategy_default_with_node_max_sessions
7272
cluster: 'minikube'
7373
helm-version: 'v3.16.4'
7474
docker-version: '27.4.1'
7575
python-version: '3.13'
76-
- k8s-version: 'v1.31.4'
76+
- k8s-version: 'v1.31.5'
7777
test-strategy: test_k8s_autoscaling_job_count_strategy_default
7878
cluster: 'minikube'
7979
helm-version: 'v3.16.4'
8080
docker-version: '27.4.1'
8181
python-version: '3.13'
82-
- k8s-version: 'v1.31.4'
82+
- k8s-version: 'v1.31.5'
8383
test-strategy: test_k8s_autoscaling_deployment_count_in_chaos
8484
cluster: 'minikube'
8585
helm-version: 'v3.16.4'
8686
docker-version: '27.4.1'
8787
python-version: '3.13'
88-
- k8s-version: 'v1.31.4'
88+
- k8s-version: 'v1.31.5'
8989
test-strategy: test_k8s_autoscaling_deployment_count_with_node_max_sessions
9090
cluster: 'minikube'
9191
helm-version: 'v3.16.4'
9292
docker-version: '27.4.1'
9393
python-version: '3.13'
94-
- k8s-version: 'v1.31.4'
94+
- k8s-version: 'v1.31.5'
9595
test-strategy: test_k8s_autoscaling_deployment_count
9696
cluster: 'minikube'
9797
helm-version: 'v3.16.4'

0 commit comments

Comments
 (0)