diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..5bd3c34b --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,31 @@ +name: CI + +on: [push] + +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 --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]+\.[0-9]+).*/\1/'` + 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-linux64/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 + run: | + xvfb-run -a python3 ${{ github.workspace }}/tests/run_tests.py diff --git a/tests/run_tests.py b/tests/run_tests.py index 99ec2ae9..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 @@ -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