-
Notifications
You must be signed in to change notification settings - Fork 43
132 lines (110 loc) · 3.7 KB
/
test_suite.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: 🕵️ Test suite
on:
push:
branches:
- main
pull_request:
types: ["opened", "synchronize", "reopened"]
schedule:
# Run every Friday at 23:59 UTC
- cron: 59 23 * * 5
jobs:
tests:
# Run unit tests on different version of python and browser
name: 🐍 Python-${{ matrix.python-version }}-${{ matrix.browser }}
runs-on: ubuntu-latest
strategy:
matrix:
browser: [chrome, firefox]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- name: Pull selenium-standalone:latest
run: podman pull selenium/standalone-${{ matrix.browser }}:latest
- name: Pull nginx:alpine
run: podman pull docker.io/library/nginx:alpine
- name: Pull pause
run: |
# something screwy is going on in the github kube node
# seeing 404s pulling from k8s.gcr, which was deprecated a year ago anyway
# the registry name is hardcoded somewhere on the infra side, but the pull from the new registry works consistently
podman pull registry.k8s.io/pause:3.5
podman tag registry.k8s.io/pause:3.5 k8s.gcr.io/pause:3.5
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python-${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: UnitTest - Python-${{ matrix.python-version }}-${{ matrix.browser }}
env:
BROWSER: ${{ matrix.browser }}
XDG_RUNTIME_DIR: ${{ github.workspace }}
run: |
pip install -e .[test]
mkdir -p ${XDG_RUNTIME_DIR}/podman
podman system service --time=0 unix://${XDG_RUNTIME_DIR}/podman/podman.sock &
pytest -n 5
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: coverage.xml
flags: unittests
name: ${{ github.run_id }}-py-${{ matrix.python-version }}-${{ matrix.browser }}
token: ${{ secrets.CODECOV_TOKEN }}
docs:
name: Docs Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install Deps
run: |
pip install -U pip wheel
pip install .[docs]
- name: Build Docs
run: sphinx-build -b html -d build/sphinx-doctrees docs build/htmldocs
- name: Archive Docs
uses: actions/upload-artifact@v4
with:
name: sphinx-htmldocs
path: build/htmldocs
platform:
# Check package properly install on different platform (dev setup)
name: 💻 Platform-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest] # We are running test on ubuntu linux.
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: "x64"
- name: Development setup on ${{ matrix.os }}
run: |
pip install -e .[dev]
python -c "from widgetastic.widget import Widget, Browser"
package:
name: ⚙️ Build & Verify Package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: "x64"
- name: Build and verify with twine
run: |
pip install wheel twine
pip wheel --no-deps -w dist .
ls -l dist
twine check dist/*