This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Linux browsers Chrome | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22.x' | |
| - name: Install latest Chrome | |
| run: | | |
| wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - | |
| sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' | |
| sudo apt-get update | |
| sudo apt-get --only-upgrade install google-chrome-stable | |
| google-chrome --version | |
| - name: Install Browsertime | |
| run: npm ci | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get install net-tools -y | |
| sudo snap install ffmpeg | |
| sudo snap alias ffmpeg.ffprobe ffprobe | |
| python -m pip install --upgrade --user pip | |
| python -m pip install --upgrade --user setuptools==70.0.0 | |
| python -m pip install --user pyssim OpenCV-Python Numpy | |
| python -m pip --version | |
| python -m pip show Pillow | |
| python -m pip show pyssim | |
| python -m pip install virtualenv | |
| sudo modprobe ifb numifbs=1 | |
| - name: Browser versions | |
| run: | | |
| google-chrome --version | |
| - name: Start local HTTP server | |
| run: (npm run start-server&) | |
| # - run: VTENV_OPTS="-p python3" make test | |
| - name: Test Chrome with CPU throttle and preURL | |
| run: ./bin/browsertime.js -b chrome --skipHar -n 1 --preURL http://127.0.0.1:3000/simple/ -r header:value --chrome.CPUThrottlingRate 2 --chrome.cdp.performance --xvfb --chrome.enableChromeDriverLog --chrome.collectConsoleLog http://127.0.0.1:3000/dimple/ | |
| - name: Test pre/post scripts | |
| run: ./bin/browsertime.js -b chrome test/data/navigationscript/measure.cjs -n 1 --preScript test/data/prepostscripts/preSample.cjs --postScript test/data/prepostscripts/postSample.cjs --xvfb | |
| - name: Test navigation and page complete check inactivity | |
| run: ./bin/browsertime.js -b chrome test/data/navigationscript/navigateAndStartInTwoSteps.cjs -n 1 --pageCompleteCheckInactivity --timeToSettle 1000 --xvfb | |
| - name: Test multi pages with video and visual metrics | |
| run: ./bin/browsertime.js -b chrome test/data/navigationscript/multi.cjs -n 3 --chrome.timeline --video --visualMetrics --visualElements --viewPort 1000x600 --xvfb | |
| - name: Test Chrome with emulated mobile | |
| run: ./bin/browsertime.js -b chrome --chrome.mobileEmulation.deviceName 'iPhone 6' http://127.0.0.1:3000/simple/ --xvfb | |
| - name: Test Chrome with web driver nagivation | |
| run: ./bin/browsertime.js -b chrome -n 1 http://127.0.0.1:3000/simple/ --webdriverPageload --xvfb | |
| - name: Test navigate to the same URL twice | |
| run: ./bin/browsertime.js -b chrome test/data/navigationscript/sameURLTwice.cjs -n 1 --pageCompleteCheckInactivity --timeToSettle 1000 --xvfb | |
| - name: Test navigate to the same URL twice by clicking on a link | |
| run: ./bin/browsertime.js -b chrome test/data/navigationscript/sameURLTwiceWithClick.cjs -n 1 --pageCompleteCheckInactivity --timeToSettle 1000 --xvfb | |
| - name: Test using alias for one URL | |
| run: ./bin/browsertime.js -b chrome http://127.0.0.1:3000/simple/ --urlAlias my_url --xvfb | |
| - name: Test using alias for multiple URLs | |
| run: ./bin/browsertime.js -b chrome http://127.0.0.1:3000/simple/ http://127.0.0.1:3000/dimple/ --urlAlias startPage --urlAlias documentation --xvfb | |
| - name: Run test with pre-test functionality | |
| run: ./bin/browsertime.js -b chrome --preWarmServer --xvfb http://127.0.0.1:3000/simple/ | |
| - name: Run test with screenshots | |
| run: ./bin/browsertime.js -b chrome --screenshotLCP --screenshotLS --xvfb http://127.0.0.1:3000/simple/ | |
| - name: Run test with check network idle in Chrome | |
| run: ./bin/browsertime.js -b chrome --pageCompleteCheckNetworkIdle --xvfb http://127.0.0.1:3000/simple/ | |
| - name: Run test with tcp dump | |
| run: ./bin/browsertime.js -b chrome --xvfb http://127.0.0.1:3000/simple/ -n 1 --tcpdump | |
| - name: Run test with scripting.mjs | |
| run: ./bin/browsertime.js -b chrome -n 1 --xvfb test/data/scripting/module.mjs | |
| - name: Run test with scripting.cjs | |
| run: ./bin/browsertime.js -b chrome -n 1 --xvfb test/data/scripting/common.cjs | |
| - name: Run test with scripting.js | |
| run: ./bin/browsertime.js -b chrome -n 1 --xvfb test/data/scripting/common.js --cjs | |
| - name: Run test with scripting.js | |
| run: ./bin/browsertime.js -b chrome -n 1 --xvfb test/data/scripting/module.js | |
| - name: Test extra profile run Chrome | |
| run: ./bin/browsertime.js -b chrome http://127.0.0.1:3000/simple/ -n 1 --viewPort 1000x600 --xvfb --enableProfileRun |