-
Notifications
You must be signed in to change notification settings - Fork 950
147 lines (128 loc) · 3.82 KB
/
packaging.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name: Packaging
on:
push:
branches:
- main
pull_request:
branches: '*'
env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
defaults:
run:
shell: bash -l {0}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
architecture: 'x64'
- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
python -m pip install --upgrade pip wheel build jupyterlab
- name: Build PyPI distributions for ipywidgets
run: |
mkdir -p dist/
cd python/ipywidgets
pyproject-build .
cp ./dist/* ../../dist
- name: Install node dependencies
run: |
jlpm
- name: Build JS
run: |
jlpm build
- name: Build PyPI distributions for jupyterlab_widgets
run: |
cd python/jupyterlab_widgets
pyproject-build .
cp ./dist/* ../../dist
- name: Build PyPI distributions for widgetsnbextension
run: |
cd python/widgetsnbextension
pyproject-build .
cp ./dist/* ../../dist
- name: Build checksum file
run: |
cd dist
sha256sum * | tee SHA256SUMS
- name: Upload distributions
uses: actions/upload-artifact@v3
with:
name: dist ${{ github.run_number }}
path: ./dist
install:
runs-on: ${{ matrix.os }}-latest
needs: [build]
strategy:
fail-fast: false
matrix:
os: [ubuntu, windows]
python: ['3.7', '3.10']
dist: ['ipywidgets*.tar.gz']
include:
- python: '3.10'
dist: 'jupyterlab_widgets*.tar.gz'
os: 'ubuntu'
- python: '3.10'
dist: 'widgetsnbextension*.tar.gz'
os: 'ubuntu'
- python: '3.10'
dist: 'ipywidgets*.whl'
os: 'ubuntu'
steps:
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
architecture: 'x64'
- name: Checkout # For the cache keys
uses: actions/checkout@v3
- name: Get pip cache dir
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- name: pip cache
uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install the prerequisites
run: |
python -m pip install pip
- uses: actions/download-artifact@v3
with:
name: dist ${{ github.run_number }}
path: ./dist
- name: Install the package
run: |
cd dist
python -m pip install -vv ${{ matrix.dist }}
- name: Validate environment
run: |
python -m pip freeze
python -m pip check
- name: Check the JupyterLab extension is installed
if: matrix.dist != 'widgetsnbextension*.tar.gz'
run: |
python -m pip install jupyterlab~=4.0
jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "@jupyter-widgets/jupyterlab-manager.*enabled.*ok" -
- name: Check the Classic Notebook extension is installed
if: matrix.dist != 'jupyterlab_widgets*.tar.gz'
run: |
python -m pip install notebook~=6.0
jupyter nbextension list
jupyter nbextension list 2>&1 | grep -ie "jupyter-js-widgets/extension.*enabled" -