-
Notifications
You must be signed in to change notification settings - Fork 18
133 lines (116 loc) · 3.67 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
name: Packaging
on:
push:
branches: [ master ]
pull_request:
branches: '*'
env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
defaults:
run:
shell: bash -l {0}
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- extension: logout
name: logout
- extension: theme-toggler
name: theme_toggler
- extension: topbar-text
name: topbar_text
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
- name: Install dependencies
run: python -m pip install -U "jupyterlab>=4.0.0,<5"
- name: Package the extension
working-directory: packages/${{ matrix.extension }}-extension
run: |
set -eux
pip install build
python -m build
pip uninstall -y "jupyterlab_${{ matrix.name }}" jupyterlab
- name: Upload extension packages
uses: actions/upload-artifact@v4
with:
name: extension-artifacts
path: packages/${{ matrix.extension }}-extension/dist/jupyterlab_${{ matrix.name }}*
if-no-files-found: error
install:
runs-on: ${{ matrix.os }}-latest
needs: [build]
strategy:
fail-fast: false
matrix:
os: [ubuntu, macos, windows]
python: ['3.8', '3.11']
include:
- python: '3.8'
extension: logout
dist: 'jupyterlab_logout*.tar.gz'
- python: '3.11'
extension: logout
dist: 'jupyterlab_logout*.whl'
- python: '3.8'
extension: theme-toggler
dist: 'jupyterlab_theme_toggler*.tar.gz'
- python: '3.11'
extension: theme-toggler
dist: 'jupyterlab_theme_toggler*.whl'
- python: '3.8'
extension: topbar-text
dist: 'jupyterlab_topbar_text*.tar.gz'
- python: '3.11'
extension: topbar-text
dist: 'jupyterlab_topbar_text*.whl'
- os: windows
py_cmd: python
- os: macos
py_cmd: python3
- os: ubuntu
py_cmd: python
# actions/setup-python do not support MacOS runners based on ARM for Python < 3.11
# https://github.com/actions/setup-python/issues/906
exclude:
- os: macos
python: 3.8
steps:
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
architecture: 'x64'
- uses: actions/download-artifact@v4
with:
name: extension-artifacts
path: packages/${{ matrix.extension }}-extension/dist
# Seems like we need to create a virtual env for MacOS runners as they are
# based on ARM now. To avoid conditional logic, we create vritual envs for all
# OS types
- name: Create venv
run: |
${{ matrix.py_cmd }} -m venv venv
- name: Install prerequisites
run: |
source ./venv/bin/activate
${{ matrix.py_cmd }} -m pip install pip wheel
- name: Install package
run: |
source ./venv/bin/activate
cd packages/${{ matrix.extension }}-extension/dist
${{ matrix.py_cmd }} -m pip install -vv ${{ matrix.dist }}
- name: Validate environment
run: |
${{ matrix.py_cmd }} -m pip freeze
${{ matrix.py_cmd }} -m pip check
- name: Validate install
run: |
source ./venv/bin/activate
jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "jupyterlab-${{ matrix.extension }}.*OK"