From 5df33ef5a32d95702d0d6138716522c10829ab4c Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 15:48:36 -0400 Subject: [PATCH 01/14] Initial attempt at setting up GitHub actions. --- .github/workflows/ci.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..cec01fe2 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,32 @@ +name: CI + +on: + push: + branches: [ $default-branch ] + pull_request: + branches: [ $default-branch ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y python3-pillow python3-numpy python3-pip mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 python3-setuptools + sudo pip3 install selenium requests + - name: Install Chrome + uses: browser-actions/setup-chrome@v1 + with: + chrome-version: stable + install-chromedriver: true + - name: Check out repository code + uses: actions/checkout@v4 + - name: Build + run: | + python3 ${{ github.workspace }}/utils/build/build.py + - name: Test + run: | + xvfb-run -a python3 ${{ github.workspace }}/tests/run_tests.py From ca424e55bedcf8409f5b32ba3e680598166dbd63 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 15:50:03 -0400 Subject: [PATCH 02/14] Trigger action? --- .github/workflows/ci.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cec01fe2..f9c953d8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,10 +1,6 @@ name: CI -on: - push: - branches: [ $default-branch ] - pull_request: - branches: [ $default-branch ] +on: [push] jobs: build: From 4429ae3fd194cd339269e1ee50afdc66284ccc86 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 15:52:43 -0400 Subject: [PATCH 03/14] Fix urlib3 error? --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f9c953d8..06ed3399 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,7 +12,7 @@ jobs: run: | sudo apt-get update sudo apt-get install -y python3-pillow python3-numpy python3-pip mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 python3-setuptools - sudo pip3 install selenium requests + sudo pip3 install --ignore-installed selenium requests - name: Install Chrome uses: browser-actions/setup-chrome@v1 with: From d96eaed7629e9a1b85f7ac1b0cb8af64f83e3219 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:02:04 -0400 Subject: [PATCH 04/14] Fix CI script for newer Selenium versions. --- tests/run_tests.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index 99ec2ae9..db920ebb 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -216,12 +216,14 @@ def get_browser(self, name=None): ) self.browser.set_window_size(800, 600) else: + from selenium.webdriver.chrome.service import Service + service = Service(service_log_path=log_path) options = webdriver.ChromeOptions() options.add_argument("headless") options.add_argument("no-sandbox") options.add_argument("window-size=800x600") self.browser = webdriver.Chrome( - service_log_path=log_path, options=options + service=service, options=options ) return self.browser From d22309d2cd2e1c27f20d56d48fcb967f358e91dd Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:12:46 -0400 Subject: [PATCH 05/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 06ed3399..a04cab88 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,6 +15,7 @@ jobs: sudo pip3 install --ignore-installed selenium requests - name: Install Chrome uses: browser-actions/setup-chrome@v1 + id: setup-chrome with: chrome-version: stable install-chromedriver: true @@ -24,5 +25,7 @@ jobs: run: | python3 ${{ github.workspace }}/utils/build/build.py - name: Test + env: + CHROME_BIN: ${{ steps.setup-chrome.outputs.chrome-path }} run: | xvfb-run -a python3 ${{ github.workspace }}/tests/run_tests.py From 9a2435b21df0c88e64c531a8a124d73b2fe909ee Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:15:19 -0400 Subject: [PATCH 06/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a04cab88..1e3076fb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -28,4 +28,6 @@ jobs: env: CHROME_BIN: ${{ steps.setup-chrome.outputs.chrome-path }} run: | + echo ${{ steps.setup-chrome.outputs.chrome-path }} + sudo ln -s ${{ steps.setup-chrome.outputs.chrome-path }} /usr/bin/google-chrome xvfb-run -a python3 ${{ github.workspace }}/tests/run_tests.py From 90963f3003b7959f8aac6536fa55885d08aceaee Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:20:59 -0400 Subject: [PATCH 07/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1e3076fb..b48c999d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -14,20 +14,17 @@ jobs: sudo apt-get install -y python3-pillow python3-numpy python3-pip mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 python3-setuptools sudo pip3 install --ignore-installed selenium requests - name: Install Chrome - uses: browser-actions/setup-chrome@v1 - id: setup-chrome - with: - chrome-version: stable - install-chromedriver: true + run: | + CHROME_VERSION=`google-chrome --version | sed -r 's/Google Chrome ([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` + LATEST_CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION}"` + curl "https://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O + unzip chromedriver_linux64.zip + sudo mv chromedriver /usr/local/bin - name: Check out repository code uses: actions/checkout@v4 - name: Build run: | python3 ${{ github.workspace }}/utils/build/build.py - name: Test - env: - CHROME_BIN: ${{ steps.setup-chrome.outputs.chrome-path }} run: | - echo ${{ steps.setup-chrome.outputs.chrome-path }} - sudo ln -s ${{ steps.setup-chrome.outputs.chrome-path }} /usr/bin/google-chrome xvfb-run -a python3 ${{ github.workspace }}/tests/run_tests.py From 3316cda321375b1b30dda69d5cb76747ac919832 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:27:19 -0400 Subject: [PATCH 08/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b48c999d..4f783ad7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,7 +15,9 @@ jobs: sudo pip3 install --ignore-installed selenium requests - name: Install Chrome run: | + google-chrome --version CHROME_VERSION=`google-chrome --version | sed -r 's/Google Chrome ([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` + echo $CHROME_VERSION LATEST_CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION}"` curl "https://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O unzip chromedriver_linux64.zip From 280134672ae7498e74598feca39a8342420bf38f Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:32:15 -0400 Subject: [PATCH 09/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4f783ad7..a10529d5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -16,11 +16,11 @@ jobs: - name: Install Chrome run: | google-chrome --version - CHROME_VERSION=`google-chrome --version | sed -r 's/Google Chrome ([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` + CHROME_VERSION=`google-chrome --version | sed -r 's/Google Chrome ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/'` echo $CHROME_VERSION - LATEST_CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION}"` curl "https://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O - unzip chromedriver_linux64.zip + curl "https://storage.googleapis.com/chrome-for-testing-public/{CHROME_VERSION}/linux64/chromedriver-linux64.zip" -O + unzip chromedriver-linux64.zip sudo mv chromedriver /usr/local/bin - name: Check out repository code uses: actions/checkout@v4 From 34c05e280d004cf32160c3bca765e354ef23eba0 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:36:44 -0400 Subject: [PATCH 10/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a10529d5..47750434 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,8 +18,7 @@ jobs: google-chrome --version CHROME_VERSION=`google-chrome --version | sed -r 's/Google Chrome ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/'` echo $CHROME_VERSION - curl "https://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O - curl "https://storage.googleapis.com/chrome-for-testing-public/{CHROME_VERSION}/linux64/chromedriver-linux64.zip" -O + curl "https://storage.googleapis.com/chrome-for-testing-public/${CHROME_VERSION}/linux64/chromedriver-linux64.zip" -O unzip chromedriver-linux64.zip sudo mv chromedriver /usr/local/bin - name: Check out repository code From d6005e978a9a3a63bb0af84540dca350970115ae Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:38:20 -0400 Subject: [PATCH 11/14] Fix Chrome issue? --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 47750434..5bd3c34b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,7 +20,7 @@ jobs: echo $CHROME_VERSION curl "https://storage.googleapis.com/chrome-for-testing-public/${CHROME_VERSION}/linux64/chromedriver-linux64.zip" -O unzip chromedriver-linux64.zip - sudo mv chromedriver /usr/local/bin + sudo mv chromedriver-linux64/chromedriver /usr/local/bin - name: Check out repository code uses: actions/checkout@v4 - name: Build From 7b4aced24d8c3183a8b228dba1accdbe3ecb42fa Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:42:19 -0400 Subject: [PATCH 12/14] Fix deprecation warning. --- tests/run_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/run_tests.py b/tests/run_tests.py index db920ebb..5ca2346f 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -71,7 +71,7 @@ def __init__(self, port=None, browser="Chrome", headless=False): print("Selected port is %s" % self.port) self.httpd = TCPServer(("", self.port), self.handler) self.server = Thread(target=self.httpd.serve_forever) - self.server.setDaemon(True) + self.server.daemon = True self.server.start() self.started = True self.pause_time = 100 From 2e9529a4af79c7992006d57a6e90e81616e78cd1 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:44:16 -0400 Subject: [PATCH 13/14] Switch to Ubuntu version of Selenium. --- .github/workflows/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5bd3c34b..ebc56b94 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -11,8 +11,7 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y python3-pillow python3-numpy python3-pip mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 python3-setuptools - sudo pip3 install --ignore-installed selenium requests + sudo apt-get install -y python3-pillow python3-numpy python3-selenium mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 - name: Install Chrome run: | google-chrome --version From 5e47bb47010c755551cb675f3d90c9614214b308 Mon Sep 17 00:00:00 2001 From: Matthew Petroff Date: Sun, 8 Jun 2025 16:46:19 -0400 Subject: [PATCH 14/14] Revert "Switch to Ubuntu version of Selenium." This reverts commit 2e9529a4af79c7992006d57a6e90e81616e78cd1. --- .github/workflows/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ebc56b94..5bd3c34b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -11,7 +11,8 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y python3-pillow python3-numpy python3-selenium mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 + sudo apt-get install -y python3-pillow python3-numpy python3-pip mesa-utils libgl1-mesa-dri libglapi-mesa libosmesa6 python3-setuptools + sudo pip3 install --ignore-installed selenium requests - name: Install Chrome run: | google-chrome --version