Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
536bc18
Way to build nodejs grpc server binary
aaltat Aug 2, 2025
49dfcc8
Use require instead of eval
aaltat Aug 3, 2025
8aa333c
scafolding for building optional dependency
aaltat Aug 7, 2025
4f28ef5
Starting BrowserBatteries
aaltat Aug 7, 2025
887ecd4
Build robotframework-browser-batteries
aaltat Aug 10, 2025
f740e47
Better start_grpc_server check
aaltat Aug 11, 2025
d4f4e79
start_grpc_server from BroserBatteries
aaltat Aug 17, 2025
d0284cb
Run BrowserBatteries in CI
aaltat Aug 19, 2025
86aab60
Fix pkg command
aaltat Aug 21, 2025
991d39b
Include assets from: Browser/wrapper/static
aaltat Aug 22, 2025
4c4b476
Refactoring
aaltat Aug 24, 2025
e160bef
Better naming in CI
aaltat Aug 24, 2025
c8ba78c
Run with BrowserBatteries on Windows and Mac
aaltat Aug 24, 2025
5152fb2
Run install test with BrowserBatteries
aaltat Aug 24, 2025
a00ca99
Fix building wheels for testing
aaltat Aug 24, 2025
9ad66eb
Unify CI build wheel code
aaltat Aug 24, 2025
0b0941f
Fix testing wheel
aaltat Aug 24, 2025
0cdcd05
Fix BrowserBatteries Browser deps version
aaltat Aug 24, 2025
070de32
Clean also browser_batteries folder
aaltat Aug 24, 2025
f34528f
first impl
Snooz82 Sep 1, 2025
967a8a0
Lint fixes
aaltat Sep 2, 2025
fadfb1a
Fix CI build for wheel testing
aaltat Sep 2, 2025
adc9951
Build speedup
aaltat Sep 2, 2025
85584fc
Make pino lgger level configurable again
aaltat Sep 2, 2025
058da74
Set PLAYWRIGHT_BROWSERS_PATH with fbrowser install-browser
aaltat Sep 4, 2025
8f6fabe
Set PLAYWRIGHT_BROWSERS_PATH also when starting grpc_server from Brow…
aaltat Sep 4, 2025
9ddff29
fix install test
aaltat Sep 5, 2025
8282da3
fix install in Windows
aaltat Sep 5, 2025
3d3caf3
Fix grpc server startup at Windows
aaltat Sep 6, 2025
0418459
Check is grpc_serve created by pkg
aaltat Sep 6, 2025
e68e4ee
Add debug info to _build_nodejs
aaltat Sep 6, 2025
7c37522
Add also grpc_server.exe to BrowserBatteries wheel
aaltat Sep 6, 2025
6b348be
Use merge_coverage_reports method to combine coverage reports with rf…
aaltat Sep 7, 2025
9cde7d0
Build BrowserBatteries wheel in CI
aaltat Sep 11, 2025
3f86237
Clean dead code from invoke
aaltat Sep 14, 2025
c664c8d
More build wheel
aaltat Sep 14, 2025
5ef607f
Fix BrowserBatteries grpc server binary build
aaltat Sep 14, 2025
c62bbf5
Build Browser wheel
aaltat Sep 14, 2025
238867b
Better OS defintion
aaltat Sep 16, 2025
3bdd9e9
NodeJS 24 support
aaltat Sep 16, 2025
2b94222
Run tests for build wheels
aaltat Sep 17, 2025
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
161 changes: 161 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
name: Build

on: [push, pull_request]

jobs:
build_browser_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
- windows-latest
- macos-13
- macos-latest

steps:
- uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: "22.x"
- name: Setup Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install uv
uv pip install wheel invoke --python 3.13 --system --verbose
python -c "import sys;print(sys.platform)"
python -c "import sysconfig;print(sysconfig.get_platform())"
python -c "import platform;print(platform.machine().lower())"
inv deps
- name: Build Protos and check with tsc
if: matrix.os == 'ubuntu-latest'
run: |
inv node-build
python -m Browser.gen_stub
- name: Create Distributable Browser Package
if: matrix.os == 'ubuntu-latest'
run: |
inv create-package
- uses: actions/upload-artifact@v4
name: Upload rfbrowser-wheel
if: matrix.os == 'ubuntu-latest'
with:
name: rfbrowser-wheel
path: dist/robotframework_browser-*-py3-none-any.whl
if-no-files-found: error
- name: Build test app
run: |
inv create-test-app
- name: Package demoapp
run: |
inv demo-app
- uses: actions/upload-artifact@v4
with:
name: demoapp-${{ matrix.os }}
path: zip_results/demoapp
if-no-files-found: error
- name: Create Distributable BrowserBatteries Package
run: |
inv package-nodejs
- uses: actions/upload-artifact@v4
with:
name: browser-batteries-wheels-${{ matrix.os }}
path: browser_batteries/dist/robotframework_browser_batteries-*.whl
if-no-files-found: error

test_browser_wheels:
needs:
- build_browser_wheels
name: Test wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-24.04-arm
- windows-latest
- macos-13
- macos-latest

steps:
- uses: actions/checkout@v5
- name: Set up Python 3.13
uses: actions/setup-python@v6
with:
python-version: 3.13
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: "22.x"
- name: Download rfbrowser-wheel artifact
uses: actions/download-artifact@v4
with:
name: rfbrowser-wheel
path: rfbrowser-wheel
- name: Download BrowserBatteries wheels
uses: actions/download-artifact@v4
with:
name: browser-batteries-wheels-${{ matrix.os }}
path: browser-batteries-wheels
- name: Download demoapp wheels
uses: actions/download-artifact@v4
with:
name: demoapp-${{ matrix.os }}
path: demoapp
- name: Install Browser and BrowserBatteries on ${{ matrix.os }}
if: matrix.os != 'windows-latest'
run: |
python -m pip install --upgrade pip
pip install rfbrowser-wheel/robotframework_browser-*-py3-none-any.whl
pip install browser-batteries-wheels/robotframework_browser_batteries-*-py3-none-*.whl
rfbrowser --version
rfbrowser install-browser --with-deps
- name: Install Browser and BrowserBatteries On Windows
if: matrix.os == 'windows-latest'
run: |
python -m pip install --upgrade pip
pip install (Resolve-Path rfbrowser-wheel/robotframework_browser-*-py3-none-any.whl)
pip install (Resolve-Path browser-batteries-wheels/robotframework_browser_batteries-*-py3-none-*.whl)
rfbrowser --version
rfbrowser install-browser
- name: Install test dependencies
run: |
pip install -r Browser/dev-requirements.txt
- name: Unzip demoapp *nix
if: matrix.os != 'windows-latest'
run: |
rm -rf Browser
rm -rf node
rm -rf browser_batteries
ls -l demoapp
unzip demoapp/demo-app*.zip -d .
- name: Unzip demoapp Windows
if: matrix.os == 'windows-latest'
run: |
Remove-Item -Path .\Browser -Force -Recurse
Remove-Item -Path .\node -Force -Recurse
Remove-Item -Path .\browser_batteries -Force -Recurse
dir demoapp
Expand-Archive -Path (Resolve-Path demoapp/demo-app*.zip) -DestinationPath .
- name: Run tests on ${{ matrix.os }} with packed demoapp
if : matrix.os == 'ubuntu-24.04-arm' || matrix.os == 'ubuntu-latest'
run: |
xvfb-run --auto-servernum invoke atest-robot --smoke
- name: Run tests on ${{ matrix.os }} with packed demoapp
if : matrix.os == 'windows-latest' || matrix.os == 'macos-latest' || matrix.os == 'macos-13'
run: |
inv atest-robot
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: Clean_install_results_${{ matrix.os }}
path: atest/output
Loading
Loading