1+ name : Docker CI
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+ paths-ignore :
8+ - ' **/*.md'
9+ pull_request :
10+ branches :
11+ - main
12+
13+ jobs :
14+ build_browser :
15+ runs-on : ubuntu-latest
16+ steps :
17+ - uses : actions/checkout@v4
18+ - name : Set up Python 3.13
19+ uses : actions/setup-python@v4
20+ with :
21+ python-version : ' 3.13'
22+ - name : Use Node.js
23+ uses : actions/setup-node@v5
24+ with :
25+ node-version : 24.x
26+ cache : ' npm'
27+ - name : Install python dependencies
28+ run : |
29+ python -m pip install --upgrade pip
30+ pip install uv
31+ uv pip install wheel --python 3.13 --system --verbose
32+ uv pip install -r Browser/dev-requirements.txt --python 3.13 --system
33+ uv pip install -r pyproject.toml --python 3.13 --system
34+ inv deps
35+ - name : Build proto
36+ run : |
37+ inv protobuf
38+ - name : Build
39+ run : |
40+ inv build
41+ - name : Build the wheel
42+ run : |
43+ inv create-package
44+ - name : Upload Browser wheel
45+ uses : actions/upload-artifact@v4
46+ with :
47+ name : browser-wheel
48+ path : dist/*.whl
49+ - name : Create demo app
50+ run : |
51+ inv demo-app
52+ - name : Pack demo app
53+ uses : actions/upload-artifact@v4
54+ with :
55+ name : demoapp
56+ path : zip_results/demoapp
57+
58+ docker-image :
59+ runs-on : ubuntu-latest
60+ needs : build_browser
61+ permissions : write-all
62+ steps :
63+ - uses : actions/checkout@v5
64+ - uses : actions/setup-python@v6
65+ with :
66+ python-version : " 3.14"
67+ cache : ' pip'
68+ - name : Docker meta
69+ id : meta
70+ uses : docker/metadata-action@v5
71+ with :
72+ images : ghcr.io/marketsquare/robotframework-browser/rfbrowser
73+ tags : |
74+ type=raw,value=tidii
75+ - name : Download browser wheel
76+ uses : actions/download-artifact@v5
77+ with :
78+ name : browser-wheel
79+ path : docker/dist
80+ - name : Login to GitHub Container Registry
81+ uses : docker/login-action@v3
82+ with :
83+ registry : ghcr.io
84+ username : ${{ github.actor }}
85+ password : ${{ secrets.GITHUB_TOKEN }}
86+ - name : Push to GitHub Packages
87+ uses : docker/build-push-action@v6
88+ with :
89+ context : .
90+ file : docker/Dockerfile.dev_pr
91+ tags : tidii
92+ labels : ${{ steps.meta.outputs.labels }}
93+ push : false
94+ - name : Download demo app
95+ uses : actions/download-artifact@v5
96+ with :
97+ name : demoapp
98+ path : demoapp
99+ - name : unzip demo app
100+ run : |
101+ rm -rf node
102+ ls -l demoapp
103+ unzip demoapp/demo-app*.zip -d .
104+ ls -l node
105+ - name : Start demo app
106+ run : |
107+ pip install uv
108+ uv pip install invoke --python 3.14 --system
109+ invoke run-test-app-no-build --asynchronous
110+ - name : Run tests with docker image
111+ run : |
112+ docker image ls
113+ docker run -v ./atest/:/home/pwuser/test -t tidii:latest bash -c "robot -v SERVER:host.docker.internal:7272 --exclude no-docker-pr -L debug --outputdir /home/pwuser/output /home/pwuser/test"
0 commit comments