-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (108 loc) · 3.39 KB
/
main.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
name: Main
on:
push:
pull_request:
workflow_dispatch:
schedule:
# Run at 2:00 a.m. every weekday (Monday to Friday)
- cron: "0 2 * * 1-5"
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine wheel jupyter-packaging "jupyterlab<4"
- name: Build
run: |
python setup.py sdist bdist_wheel
- name: Upload builds
uses: actions/upload-artifact@v3
with:
name: ipypopout-dist-${{ github.run_number }}
path: |
./dist
test:
needs: [build]
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9, "3.10", "3.11"]
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v3
with:
name: ipypopout-dist-${{ github.run_number }}
# because we only upload 1 file, it's not put in a subdirectory
path: dist
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: pip install dist/*.whl
- name: Import
# do the import in a subdirectory, as after installation, files in de current directory are also imported
run: |
(mkdir test-install; cd test-install; python -c "from ipypopout import PopoutButton")
ui-test:
needs: [build]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v3
with:
# because we only upload 1 file, it's not put in a subdirectory
path: dist
name: ipypopout-dist-${{ github.run_number }}
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install ipypopout and test deps
run: |
wheel=(dist/*.whl)
pip install ${wheel}[test] "jupyter_server<2"
- name: Install playwright browsers
run: playwright install chromium
- name: Run ui-tests
env:
# do not run solara (yet)
SOLARA_TEST_RUNNERS: "jupyter_lab,jupyter_notebook,voila"
run: pytest tests/ui/ --video=retain-on-failure --solara-update-snapshots-ci -s
- name: Upload Test artifacts
if: always()
uses: actions/upload-artifact@v2
with:
name: ipypopout-test-results
path: test-results
release:
if: startsWith(github.event.ref, 'refs/tags/v')
needs: [test]
runs-on: ubuntu-20.04
steps:
- uses: actions/download-artifact@v3
with:
# because we only upload 1 file, it's not put in a subdirectory
path: dist
name: ipypopout-dist-${{ github.run_number }}
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine wheel
- name: Publish the Python package
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: twine upload --skip-existing dist/*