33
33
steps :
34
34
- name : Checkout
35
35
uses : actions/checkout@v2
36
+ - name : Path filter
37
+ id : filter
38
+ uses : dorny/paths-filter@v2
39
+ with :
40
+ filters : |
41
+ extension:
42
+ - '${{ matrix.example }}/**'
36
43
- name : Cache lerna
44
+ if : steps.filter.outputs.extension == 'true'
37
45
uses : actions/cache@v2
38
46
with :
39
47
path : |
43
51
restore-keys : |
44
52
${{ runner.os }}-lerna-
45
53
- name : Check config files
54
+ if : steps.filter.outputs.extension == 'true'
46
55
run : |
47
56
diff basics/hello-world/tsconfig.json ${EXAMPLE_FOLDER}/tsconfig.json
48
57
diff basics/hello-world/.eslintignore ${EXAMPLE_FOLDER}/.eslintignore
@@ -52,43 +61,51 @@ jobs:
52
61
EXAMPLE_FOLDER : ${{ matrix.example }}
53
62
shell : bash
54
63
- name : Install node
64
+ if : steps.filter.outputs.extension == 'true'
55
65
uses : actions/setup-node@v1
56
66
with :
57
67
node-version : " 12.x"
58
68
- name : Install Python
69
+ if : steps.filter.outputs.extension == 'true'
59
70
uses : actions/setup-python@v1
60
71
with :
61
72
python-version : " 3.7"
62
73
architecture : " x64"
63
74
- name : Get pip cache dir
75
+ if : steps.filter.outputs.extension == 'true'
64
76
id : pip-cache
65
77
run : |
66
78
echo "::set-output name=dir::$(pip cache dir)"
67
79
shell : bash
68
80
- name : Cache pip
81
+ if : steps.filter.outputs.extension == 'true'
69
82
uses : actions/cache@v2
70
83
with :
71
84
path : ${{ steps.pip-cache.outputs.dir }}
72
85
key : ${{ runner.os }}-pip-${{ hashFiles('**/environment.yml') }}
73
86
restore-keys : |
74
87
${{ runner.os }}-pip-
75
88
- name : Install the Python dependencies
89
+ if : steps.filter.outputs.extension == 'true'
76
90
run : python -m pip install jupyterlab
77
91
- name : Install the NPM dependencies
92
+ if : steps.filter.outputs.extension == 'true'
78
93
run : |
79
94
cd ${EXAMPLE_FOLDER}
80
95
jlpm
81
96
env :
82
97
EXAMPLE_FOLDER : ${{ matrix.example }}
83
98
shell : bash
84
99
- name : Lint the files
100
+ if : steps.filter.outputs.extension == 'true'
85
101
run : |
86
102
cd ${EXAMPLE_FOLDER}
87
103
jlpm run eslint:check
88
104
env :
89
105
EXAMPLE_FOLDER : ${{ matrix.example }}
90
106
shell : bash
91
107
- name : Build and check by extension
108
+ if : steps.filter.outputs.extension == 'true'
92
109
run : |
93
110
cd ${EXAMPLE_FOLDER}
94
111
jlpm run build
@@ -107,55 +124,72 @@ jobs:
107
124
steps :
108
125
- name : Checkout
109
126
uses : actions/checkout@v2
127
+ - name : Path filter
128
+ id : filter
129
+ uses : dorny/paths-filter@v2
130
+ with :
131
+ filters : |
132
+ extension:
133
+ - 'advanced/server-extension/**'
110
134
- name : Cache lerna
135
+ if : steps.filter.outputs.extension == 'true'
111
136
uses : actions/cache@v2
112
137
with :
113
138
path : |
114
139
node_modules
115
140
*/*/node_modules
116
- key : ${{ runner.os }}-lerna-${{ hashFiles('** /package.json') }}
141
+ key : ${{ runner.os }}-lerna-${{ hashFiles('advanced/server-extension /package.json') }}
117
142
restore-keys : |
118
143
${{ runner.os }}-lerna-
119
144
- name : Install node
145
+ if : steps.filter.outputs.extension == 'true'
120
146
uses : actions/setup-node@v1
121
147
with :
122
148
node-version : " 12.x"
123
149
- name : Check config files
150
+ if : steps.filter.outputs.extension == 'true'
124
151
run : |
125
152
diff basics/hello-world/tsconfig.json advanced/server-extension/tsconfig.json
126
153
diff basics/hello-world/.eslintignore advanced/server-extension/.eslintignore
127
154
diff basics/hello-world/.eslintrc.js advanced/server-extension/.eslintrc.js
128
155
shell : bash
129
156
- name : Install Python
157
+ if : steps.filter.outputs.extension == 'true'
130
158
uses : actions/setup-python@v1
131
159
with :
132
160
python-version : " 3.7"
133
161
architecture : " x64"
134
162
- name : Get pip cache dir
163
+ if : steps.filter.outputs.extension == 'true'
135
164
id : pip-cache
136
165
run : |
137
166
echo "::set-output name=dir::$(pip cache dir)"
138
167
shell : bash
139
168
- name : Cache pip
169
+ if : steps.filter.outputs.extension == 'true'
140
170
uses : actions/cache@v2
141
171
with :
142
172
path : ${{ steps.pip-cache.outputs.dir }}
143
173
key : ${{ runner.os }}-pip-${{ hashFiles('**/environment.yml') }}
144
174
restore-keys : |
145
175
${{ runner.os }}-pip-
146
176
- name : Install the Python dependencies
177
+ if : steps.filter.outputs.extension == 'true'
147
178
run : |
148
179
python -m pip install jupyter_packaging
149
180
python -m pip install jupyterlab
150
181
- name : Install the NPM dependencies
182
+ if : steps.filter.outputs.extension == 'true'
151
183
run : |
152
184
cd advanced/server-extension
153
185
jlpm
154
186
- name : Lint the files
187
+ if : steps.filter.outputs.extension == 'true'
155
188
run : |
156
189
cd advanced/server-extension
157
190
jlpm run eslint:check
158
191
- name : Build extension as user
192
+ if : steps.filter.outputs.extension == 'true'
159
193
# Force the usage of the source distribution (good practice)
160
194
run : |
161
195
cd advanced/server-extension
@@ -164,26 +198,28 @@ jobs:
164
198
jupyter lab build
165
199
python -m jupyterlab.browser_check
166
200
- name : Check extension as dev
167
- if : startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
201
+ if : steps.filter.outputs.extension == 'true' && ( startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS') )
168
202
run : |
169
203
jupyter serverextension list 1>serverextensions 2>&1
170
204
cat serverextensions | grep "jlab_ext_example.*OK"
171
205
jupyter labextension list 1>labextensions 2>&1
172
206
cat labextensions | grep "@jupyterlab-examples/server-extension.*OK"
173
207
- name : Clean extension installation
208
+ if : steps.filter.outputs.extension == 'true'
174
209
run : |
175
210
pip uninstall -y jlab_ext_example
176
211
jupyter lab clean
177
212
jupyter serverextension list
178
213
jupyter labextension list
179
214
- name : Build extension as dev
215
+ if : steps.filter.outputs.extension == 'true'
180
216
run : |
181
217
cd advanced/server-extension
182
218
pip install -e .
183
219
jupyter serverextension enable --py jlab_ext_example
184
220
jupyter labextension install .
185
221
- name : Check extension as dev
186
- if : startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS')
222
+ if : steps.filter.outputs.extension == 'true' && ( startsWith(runner.os, 'Linux') || startsWith(runner.os, 'macOS') )
187
223
run : |
188
224
jupyter serverextension list 1>serverextensions 2>&1
189
225
cat serverextensions | grep "jlab_ext_example.*OK"
0 commit comments