Skip to content
This repository has been archived by the owner on Jun 22, 2024. It is now read-only.

Sync from upstream repo and make changes to stabilize the build process. #55

Merged
merged 85 commits into from
Dec 30, 2023
Merged
Changes from 1 commit
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
980f915
Bump docker images to 4.13.0 (#1951)
luisfcorreia Sep 26, 2023
1872925
Update tag in docs and files [skip ci]
selenium-ci Sep 26, 2023
a1af630
Bumping Chart version
diemol Sep 26, 2023
51eafbe
Bump nick-invision/retry from 2.8.3 to 2.9.0 (#1952)
dependabot[bot] Sep 28, 2023
773c0dc
fix(obsolescence): bumped up packages (#1961)
amardeep2006 Oct 3, 2023
889b7f5
fix: update base image to use focal 20230801 (#1962)
imtheish97 Oct 3, 2023
410ca81
Add missing Ingress namespace field (#1966)
IronMage Oct 4, 2023
306b8fc
feat(keda): bumped up keda 2.12.0 (#1960)
amardeep2006 Oct 4, 2023
0049db7
Update tag in docs and files [skip ci]
selenium-ci Oct 4, 2023
69d9349
Bumping Chart version
diemol Oct 4, 2023
cefee2a
Bump images to 4.14.1 (#1970)
luisfcorreia Oct 16, 2023
37fb389
Update tag in docs and files [skip ci]
selenium-ci Oct 16, 2023
eea48b3
fix issue #1887: affinity rules for helm charts (again) (#1973)
sehaas Oct 16, 2023
a6bf003
Bump ad-m/github-push-action from 0.6.0 to 0.8.0 (#1971)
dependabot[bot] Oct 17, 2023
cf442bf
Bump actions/setup-python from 4.7.0 to 4.7.1 (#1965)
dependabot[bot] Oct 17, 2023
32ec173
Adds possibility to set node stereotype in standalone mode (#1967)
philippe-granet Oct 17, 2023
5c177a7
Update Dockerfile ubuntu version (#1980)
mtcolman Oct 20, 2023
3a03f97
Update tag in docs and files [skip ci]
selenium-ci Oct 20, 2023
01648f3
feat: video recording with pluggable upload container (#1881)
msvticket Oct 25, 2023
60ad27e
Update Video/Dockerfile with based image ffmpeg:6.0-alpine (#1981)
VietND96 Oct 25, 2023
9b4acaa
Update tag in docs and files [skip ci]
selenium-ci Oct 25, 2023
020ded4
Bumping chart version
diemol Oct 25, 2023
0f7367e
Fix minor issues after PR #1881 and #1981 (#1983)
VietND96 Oct 27, 2023
fe80aba
Improve default value for videoRecorder in chart (#1984)
VietND96 Oct 27, 2023
4f725b7
Improve chart templates in the section videoRecorder (#1987)
VietND96 Oct 30, 2023
b1c358c
Update to Selenium 4.15.0 (#1990)
luisfcorreia Nov 2, 2023
cef5534
Update tag in docs and files [skip ci]
selenium-ci Nov 2, 2023
599c704
feat(autoscaling): Unified parameters to set scaled options for brows…
VietND96 Nov 6, 2023
009d47c
Add chart parameter ingress.paths to configure custom paths (#1994)
VietND96 Nov 6, 2023
87c0cf6
Bump helm/chart-releaser-action from 1.5.0 to 1.6.0 (#1993)
dependabot[bot] Nov 6, 2023
fe17f6d
feat: Adding port to nodes service (#1996)
VietND96 Nov 8, 2023
e071a31
Update Dockerfile external jar versions (#1998)
mtcolman Nov 8, 2023
6b7356b
Update tag in docs and files [skip ci]
selenium-ci Nov 8, 2023
f5f90dd
Switching to Jammy (#1923)
diemol Nov 10, 2023
f291b8e
Update tag in docs and files [skip ci]
selenium-ci Nov 10, 2023
6f9708e
Update start-xvfb.sh
diemol Nov 10, 2023
f038e69
Bump dessant/lock-threads from 4.0.1 to 5.0.0 (#2012)
dependabot[bot] Nov 14, 2023
35a044a
feat(helm-test): Added helm test and linting (#2003)
amardeep2006 Nov 14, 2023
eec5ecc
Bug: Error setting name in helm release #2006 #2007 (#2009)
VietND96 Nov 14, 2023
373c3c3
corrected typo in selenium grid charts (#2010)
Thab310 Nov 14, 2023
b365646
Update Dockerfile - external jar version uplift (#2015)
mtcolman Nov 21, 2023
ad0a7a6
Setting driver and browser path via configuration (#2017)
diemol Nov 22, 2023
9bc083a
Update tag in docs and files [skip ci]
selenium-ci Nov 22, 2023
a14d80e
Bump dessant/lock-threads from 5.0.0 to 5.0.1 (#2019)
dependabot[bot] Nov 22, 2023
0ca1bb1
Bump nick-invision/retry from 2.8.3 to 2.9.0 (#2024)
dependabot[bot] Nov 23, 2023
82603e9
Update NodeChrome support latest version from GoogleChromeLabs (#2018)
VietND96 Nov 27, 2023
c3938aa
Update service.name as selenium-node-chrome (#2026)
alaahong Nov 27, 2023
bbef734
feat: CI Bot bump chart version along with new deploy image version (…
VietND96 Nov 27, 2023
e56a1fc
Feature run selenium tests grid on kubernetes via helm chart (#2027)
amardeep2006 Nov 27, 2023
7b3dfe9
test: Sanity tests Selenium Grid chart via Makefile commands (#2029)
VietND96 Nov 28, 2023
57c78c0
Update tag in docs and files [skip ci]
selenium-ci Nov 28, 2023
e3304b4
bug(#1888): TimeZone change behavior changed (#2031)
VietND96 Nov 29, 2023
7545bc9
feat(chart): distribution registry can be set global and individual c…
VietND96 Nov 29, 2023
b5dab36
bug(#2032): Rollback to use regular version in NodeChrome (#2033)
VietND96 Nov 29, 2023
991d245
test: Add sanity test for download file (#2034) [deploy]
VietND96 Nov 29, 2023
591e3f5
Update tag in docs and files
selenium-ci Nov 29, 2023
4c7703b
Update bug report template [skip ci]
VietND96 Nov 29, 2023
113bb0a
test(chart): Add test for setting registry to pull images (#2036)
VietND96 Nov 30, 2023
8fd00ef
bug(#2038): Rollback io.opentelemetry 1.31.0 - add test tracing enabl…
VietND96 Dec 1, 2023
e5d0aa6
feat: Video image with based FFmpeg-6.1 on Ubuntu-22.04 (#2042)
VietND96 Dec 1, 2023
c2a5b66
test(chart): Chart template render and assert output (#2043)
VietND96 Dec 1, 2023
99448df
bug(#1824): Container ENV SE_NODE_SESSION_TIMEOUT not take effect (#2…
VietND96 Dec 3, 2023
c4e4024
test(chart): Parallel tests execution against autoscaling in Kubernet…
VietND96 Dec 5, 2023
30a6cc3
Update chart CHANGELOG [skip ci]
VietND96 Dec 6, 2023
59cb6cb
Bump actions/setup-python from 4.7.1 to 4.8.0 (#2048)
dependabot[bot] Dec 6, 2023
da15922
Add build-arg to get based version from Makefile (#2049)
VietND96 Dec 6, 2023
e2843cc
feat(chart): Add default annotations for ingress nginx controller (#2…
VietND96 Dec 6, 2023
c4e7e10
Update to Selenium 4.16.0 [deploy]
VietND96 Dec 6, 2023
67c8a7b
Maintain test failure [deploy]
VietND96 Dec 6, 2023
6a12140
Update tag in docs and files
selenium-ci Dec 6, 2023
915f39a
Bump actions/setup-python from 4.8.0 to 5.0.0 (#2050)
dependabot[bot] Dec 7, 2023
08e0509
Merging from upstream
jamesmortensen Dec 8, 2023
84e8b99
Fix build scripts so the RELEASE variable is used.
jamesmortensen Dec 9, 2023
b643b84
Fix Makefile - add BASE_RELEASE and BASE_VERSION to the base_multi ac…
jamesmortensen Dec 9, 2023
5169a5c
Adding locale to Chromium dockerfile.
jamesmortensen Dec 9, 2023
c92165e
Handle usrmerge issues https://wiki.debian.org/UsrMerge
jamesmortensen Dec 9, 2023
d56b368
Just install usrmerge
jamesmortensen Dec 9, 2023
69b5bfe
Try chromium without usrmerge. Upgrade Firefox to 120
jamesmortensen Dec 10, 2023
562ab74
Add usrmerge to NodeChromium after setting sources. Split Firefox ins…
jamesmortensen Dec 10, 2023
1a8d4a4
[deploy] test with debian bookworm update - was missing the browser_v…
jamesmortensen Dec 20, 2023
ac446ae
[deploy] test
jamesmortensen Dec 20, 2023
a065634
[deploy] test from tmp
jamesmortensen Dec 20, 2023
8b1a1b1
[deploy] fixed tests
jamesmortensen Dec 21, 2023
8912ca0
Fixed tests by waiting for downloadable files to exist in array, fixe…
jamesmortensen Dec 30, 2023
d78ba38
Prepare release for 4.16.1
jamesmortensen Dec 30, 2023
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
Prev Previous commit
Next Next commit
Update NodeChrome support latest version from GoogleChromeLabs (Selen…
…iumHQ#2018)

feat: NodeChrome support latest version from GoogleChromeLabs

Signed-off-by: Viet Nguyen Duc <[email protected]>
  • Loading branch information
VietND96 authored Nov 27, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 82603e902fcd7bb820cabd17540d9c7bf28682f9
92 changes: 65 additions & 27 deletions NodeChrome/Dockerfile
Original file line number Diff line number Diff line change
@@ -6,58 +6,96 @@ LABEL authors=${AUTHORS}

USER root

RUN apt-get update -qqy \
&& apt-get -qqy --no-install-recommends install libatk1.0-0 libatk-bridge2.0-0 \
libxkbcommon-x11-0 libgbm1 libpango-1.0-0 \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*

#============================================
# Google Chrome
#============================================
# can specify versions by CHROME_VERSION;
# e.g. google-chrome-stable
# google-chrome-beta
# google-chrome-unstable
#============================================
ARG CHROME_VERSION="google-chrome-stable"
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \
&& apt-get update -qqy \
&& apt-get -qqy install \
${CHROME_VERSION:-google-chrome-stable} \
&& rm /etc/apt/sources.list.d/google-chrome.list \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/*
# Support these inputs (following https://github.com/GoogleChromeLabs/chrome-for-testing):
# LATEST_RELEASE_STABLE
# LATEST_RELEASE_BETA
# LATEST_RELEASE_DEV
# LATEST_RELEASE_CANARY
# 121 (specific major version)
# 119.0.6045.105 (specific full version)
#============================================
ARG DOWNLOAD_HOST="https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing"
ARG VERSION_HOST="https://googlechromelabs.github.io/chrome-for-testing"
ARG CHROME_VERSION="LATEST_RELEASE_STABLE"
ARG CHROME_PLATFORM="linux64"
RUN if [ ! -z "$CHROME_VERSION" ]; \
then GET_VERSION_URL=$VERSION_HOST/$CHROME_VERSION \
&& if [ $(curl -I -s -o /dev/null -w "%{http_code}" $GET_VERSION_URL) -eq 200 ]; \
then echo "Getting Chrome version from "$GET_VERSION_URL \
&& CHROME_VERSION=$(wget -qO- $VERSION_HOST"/"$CHROME_VERSION | sed 's/\r$//') ; \
fi \
else echo "Getting Chrome version "$CHROME_DRIVER_VERSION ; \
fi \
&& CHROME_URL=$DOWNLOAD_HOST/$CHROME_VERSION/$CHROME_PLATFORM/chrome-$CHROME_PLATFORM.zip \
&& if [ $(curl -I -s -o /dev/null -w "%{http_code}" $CHROME_URL) -ne 200 ]; \
then CHROME_MAJOR_VERSION=$(echo $CHROME_VERSION | sed -E "s/([0-9]+).*/\1/") \
&& echo "Getting Chrome latest major version from "$VERSION_HOST"/LATEST_RELEASE_"$CHROME_MAJOR_VERSION \
&& CHROME_VERSION=$(wget -qO- $VERSION_HOST/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \
&& CHROME_URL=$DOWNLOAD_HOST/$CHROME_VERSION/$CHROME_PLATFORM/chrome-$CHROME_PLATFORM.zip ; \
fi \
&& echo "Using Chrome from: "$CHROME_URL \
&& wget --no-verbose -O /tmp/chrome-$CHROME_PLATFORM.zip $CHROME_URL \
&& rm -rf /opt/google/chrome \
&& unzip /tmp/chrome-$CHROME_PLATFORM.zip -d /opt/google \
&& mv /opt/google/chrome-$CHROME_PLATFORM /opt/google/chrome \
&& rm /tmp/chrome-$CHROME_PLATFORM.zip \
&& mv /opt/google/chrome/chrome-wrapper /opt/google/chrome/google-chrome \
&& chmod +x /opt/google/chrome/google-chrome \
&& ln -fs /opt/google/chrome/google-chrome /usr/bin/google-chrome

#=================================
# Chrome Launch Script Wrapper
#=================================
COPY wrap_chrome_binary /opt/bin/wrap_chrome_binary
RUN /opt/bin/wrap_chrome_binary

USER 1200

#============================================
# Chrome webdriver
#============================================
# can specify versions by CHROME_DRIVER_VERSION
# Latest released version will be used by default
# Latest released version (following browser version) will be used by default
#============================================
ARG CHROME_DRIVER_VERSION
ARG CHROME_DRIVER_VERSION=$CHROME_VERSION
RUN if [ ! -z "$CHROME_DRIVER_VERSION" ]; \
then CHROME_DRIVER_URL=https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip ; \
else echo "Geting ChromeDriver latest version from https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_" \
&& CHROME_MAJOR_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+)(\.[0-9]+){3}.*/\1/") \
&& CHROME_DRIVER_VERSION=$(wget -qO- https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \
&& CHROME_DRIVER_URL=https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/$CHROME_DRIVER_VERSION/linux64/chromedriver-linux64.zip ; \
then GET_VERSION_URL=$VERSION_HOST/$CHROME_DRIVER_VERSION \
&& if [ $(curl -I -s -o /dev/null -w "%{http_code}" $GET_VERSION_URL) -eq 200 ]; \
then echo "Getting ChromeDriver version from "$GET_VERSION_URL \
&& CHROME_DRIVER_VERSION=$(wget -qO- $VERSION_HOST"/"$CHROME_DRIVER_VERSION | sed 's/\r$//') ; \
fi \
else CHROME_DRIVER_VERSION=$(google-chrome --version | sed -E "s/.* ([0-9]+(\.[0-9]+)+).*/\1/") \
&& echo "Getting ChromeDriver same as browser version "$CHROME_DRIVER_VERSION ; \
fi \
&& CHROME_DRIVER_URL=$DOWNLOAD_HOST/$CHROME_DRIVER_VERSION/$CHROME_PLATFORM/chromedriver-$CHROME_PLATFORM.zip \
&& if [ $(curl -I -s -o /dev/null -w "%{http_code}" $CHROME_DRIVER_URL) -ne 200 ]; \
then CHROME_MAJOR_VERSION=$(echo $CHROME_DRIVER_VERSION | sed -E "s/([0-9]+).*/\1/") \
&& echo "Getting ChromeDriver latest major version from "$VERSION_HOST"/LATEST_RELEASE_"$CHROME_MAJOR_VERSION \
&& CHROME_DRIVER_VERSION=$(wget -qO- $VERSION_HOST/LATEST_RELEASE_${CHROME_MAJOR_VERSION} | sed 's/\r$//') \
&& CHROME_DRIVER_URL=$DOWNLOAD_HOST/$CHROME_DRIVER_VERSION/$CHROME_PLATFORM/chromedriver-$CHROME_PLATFORM.zip ; \
fi \
&& echo "Using ChromeDriver from: "$CHROME_DRIVER_URL \
&& echo "Using ChromeDriver version: "$CHROME_DRIVER_VERSION \
&& wget --no-verbose -O /tmp/chromedriver_linux64.zip $CHROME_DRIVER_URL \
&& wget --no-verbose -O /tmp/chromedriver_$CHROME_PLATFORM.zip $CHROME_DRIVER_URL \
&& rm -rf /opt/selenium/chromedriver \
&& unzip /tmp/chromedriver_linux64.zip -d /opt/selenium \
&& rm /tmp/chromedriver_linux64.zip \
&& mv /opt/selenium/chromedriver-linux64/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \
&& unzip /tmp/chromedriver_$CHROME_PLATFORM.zip -d /opt/selenium \
&& rm /tmp/chromedriver_$CHROME_PLATFORM.zip \
&& mv /opt/selenium/chromedriver-$CHROME_PLATFORM/chromedriver /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \
&& chmod 755 /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION \
&& sudo ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver
&& ln -fs /opt/selenium/chromedriver-$CHROME_DRIVER_VERSION /usr/bin/chromedriver

USER 1200

#============================================
# Dumping Browser information for config
#============================================
RUN echo "chrome" > /opt/selenium/browser_name
RUN google-chrome --version | awk '{print $3}' > /opt/selenium/browser_version
RUN google-chrome --version | awk '{print $5}' > /opt/selenium/browser_version
RUN echo "\"goog:chromeOptions\": {\"binary\": \"/usr/bin/google-chrome\"}" > /opt/selenium/browser_binary_location
8 changes: 4 additions & 4 deletions NodeEdge/Dockerfile
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ USER root
# e.g. microsoft-edge-beta=88.0.692.0-1
#============================================
ARG EDGE_VERSION="microsoft-edge-stable"
RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg >/dev/null \
&& echo "deb https://packages.microsoft.com/repos/edge stable main" >> /etc/apt/sources.list.d/microsoft-edge.list \
&& apt-get update -qqy \
&& apt-get -qqy install ${EDGE_VERSION} \
@@ -26,8 +26,6 @@ RUN wget -q -O - https://packages.microsoft.com/keys/microsoft.asc | apt-key add
COPY wrap_edge_binary /opt/bin/wrap_edge_binary
RUN /opt/bin/wrap_edge_binary

USER 1200

#============================================
# Edge webdriver
#============================================
@@ -46,7 +44,9 @@ RUN if [ -z "$EDGE_DRIVER_VERSION" ]; \
&& rm /tmp/msedgedriver_linux64.zip \
&& mv /opt/selenium/msedgedriver /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \
&& chmod 755 /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION \
&& sudo ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver
&& ln -fs /opt/selenium/msedgedriver-$EDGE_DRIVER_VERSION /usr/bin/msedgedriver

USER 1200

#============================================
# Dumping Browser information for config
10 changes: 10 additions & 0 deletions NodeFirefox/Dockerfile
Original file line number Diff line number Diff line change
@@ -36,8 +36,18 @@ RUN GK_VERSION=$(if [ ${GECKODRIVER_VERSION:-latest} = "latest" ]; then echo "0.
&& chmod 755 /opt/geckodriver-$GK_VERSION \
&& ln -fs /opt/geckodriver-$GK_VERSION /usr/bin/geckodriver

# Workaround for issue launch Firefox Webdriver "Failed to read marionette port"
RUN mkdir -p /home/seluser/.cache /home/seluser/.mozilla /.cache \
&& chmod 777 /home/seluser/.cache /home/seluser/.mozilla /.cache

USER 1200

RUN if ! whoami &> /dev/null; then \
if [ -w /tmp/passwd ]; then \
echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:/home/seluser:/tmp:/bin/bash" >> /tmp/passwd; \
fi \
fi

#============================================
# Dumping Browser information for config
#============================================
2 changes: 1 addition & 1 deletion Standalone/start-selenium-standalone.sh
Original file line number Diff line number Diff line change
@@ -42,4 +42,4 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \
--bind-host ${SE_BIND_HOST} \
--config /opt/selenium/config.toml \
${SUB_PATH_CONFIG} \
${SE_OPTS}
${SE_OPTS}
52 changes: 52 additions & 0 deletions charts/selenium-grid/ci/customIngressPath-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
ingress:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/app-root: &gridAppRoot "/selenium"
hostname: ""
paths:
- path: /selenium(/|$)(.*)
pathType: Prefix
backend:
service:
name: '{{ template "seleniumGrid.router.fullname" $ }}'
port:
number: 4444
- path: /(/?)(session/.*/se/vnc)
pathType: Prefix
backend:
service:
name: '{{ template "seleniumGrid.router.fullname" $ }}'
port:
number: 4444

basicAuth:
enabled: false
isolateComponents: true

hub:
subPath: *gridAppRoot

components:
subPath: *gridAppRoot

chromeNode:
enabled: true
extraEnvironmentVariables:
- name: SE_NODE_OVERRIDE_MAX_SESSIONS
value: "true"
- name: SE_NODE_MAX_SESSIONS
value: "5"
startupProbe:
exec:
command:
- bash
- -c
- if [ $(curl --write-out %{http_code} --silent --output /dev/null http://selenium-router:4444/selenium/wd/hub/status) -ne 200 ]; then exit 1; fi
failureThreshold: 15
periodSeconds: 5

edgeNode:
enabled: false
firefoxNode:
enabled: false
3 changes: 0 additions & 3 deletions tests/test.py
Original file line number Diff line number Diff line change
@@ -173,9 +173,6 @@ def standalone_browser_container_matches(container):

if use_random_user_id:
logger.info("Running tests with a random user ID -> %s" % random_user_id)
if 'firefox' in image.lower():
logger.info("Firefox has issues when running with a random user ID. Skipping until it gets fixed.")
exit(0)

standalone = 'standalone' in image.lower()