From 49b20773bbf6b1c906d2cc1258a4e6718bce3a98 Mon Sep 17 00:00:00 2001 From: omri zaher Date: Sun, 10 Aug 2025 10:14:01 +0300 Subject: [PATCH] Refactor Chrome and ChromeDriver installation in UI testing workflow --- .github/workflows/ui-testing.yml | 36 +++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ui-testing.yml b/.github/workflows/ui-testing.yml index 04a69e5a8..fa4da0cd2 100644 --- a/.github/workflows/ui-testing.yml +++ b/.github/workflows/ui-testing.yml @@ -28,10 +28,40 @@ jobs: python -m pip install --upgrade pip pip install -r requirements.txt - - name: Install Chrome and ChromeDriver + - name: Install Chrome & ChromeDriver run: | - sudo apt-get update - sudo apt-get install -y google-chrome-stable + sudo apt update + sudo apt install -y wget unzip xvfb libxi6 libgbm-dev libnss3 libxshmfence1 libasound2t64 + + # Download and install latest stable Google Chrome + wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb + sudo apt install -y ./google-chrome-stable_current_amd64.deb + + # Get Chrome version number like "139.0.7258.66" + CHROME_VERSION=$(google-chrome --version | grep -oP "\d+\.\d+\.\d+\.\d+") + + # Download matching ChromeDriver from official "chrome-for-testing" bucket (preferred) + wget -q -O chromedriver.zip "https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/${CHROME_VERSION}/linux64/chromedriver-linux64.zip" + + # Unzip ChromeDriver, then move binary correctly (handles folder name) + unzip chromedriver.zip + mv */chromedriver /usr/local/bin/chromedriver + sudo chmod +x /usr/local/bin/chromedriver + + # Clean up + rm -rf chromedriver.zip google-chrome-stable_current_amd64.deb + + # Create temporary directories for Chrome user data + mkdir -p /tmp/chrome-user-data + chmod 755 /tmp/chrome-user-data + + - name: Cleanup existing Chrome processes + run: | + # Kill any existing Chrome processes + pkill -f chrome || true + pkill -f chromedriver || true + # Clean up any existing user data directories + rm -rf /tmp/chrome-user-data-* || true - name: Run Selenium tests env: