@@ -328,7 +328,7 @@ jobs:
328
328
timeout-minutes : 90
329
329
330
330
concurrency :
331
- # https://github.community/t/concurrecy-not-work-for-push/183068/7
331
+ # https://github.community/t/concurrecy-not-work-for-push/183068/7
332
332
group : ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.os }}-${{ matrix.pytest_target }}-dev
333
333
cancel-in-progress : true
334
334
@@ -360,3 +360,62 @@ jobs:
360
360
361
361
- name : Run Tests
362
362
uses : ./.github/actions/run-tests
363
+
364
+ emscripten :
365
+ # Note: the Python version, Emscripten toolchain version are determined
366
+ # by the Pyodide version. The appropriate versions can be found in the
367
+ # Pyodide repodata.json "info" field, or in the Makefile.envs file:
368
+ # https://github.com/pyodide/pyodide/blob/stable/Makefile.envs#L2
369
+ # The Node.js version can be determined via Pyodide:
370
+ # https://pyodide.org/en/stable/usage/index.html#node-js
371
+ name : Build pandas distribution for Pyodide
372
+ runs-on : ubuntu-22.04
373
+ concurrency :
374
+ # https://github.community/t/concurrecy-not-work-for-push/183068/7
375
+ group : ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm
376
+ cancel-in-progress : true
377
+ steps :
378
+ - name : Checkout pandas Repo
379
+ uses : actions/checkout@v4
380
+ with :
381
+ fetch-depth : 0
382
+
383
+ - name : Set up Python for Pyodide
384
+ id : setup-python
385
+ uses : actions/setup-python@v5
386
+ with :
387
+ python-version : ' 3.11.3'
388
+
389
+ - name : Set up Emscripten toolchain
390
+ uses : mymindstorm/setup-emsdk@v14
391
+ with :
392
+ version : ' 3.1.46'
393
+ actions-cache-folder : emsdk-cache
394
+
395
+ - name : Install pyodide-build
396
+ run : pip install "pydantic<2" "pyodide-build==0.25.0"
397
+
398
+ - name : Build pandas for Pyodide
399
+ run : |
400
+ pyodide build
401
+
402
+ - name : Set up Node.js
403
+ uses : actions/setup-node@v4
404
+ with :
405
+ node-version : ' 18'
406
+
407
+ - name : Set up Pyodide virtual environment
408
+ run : |
409
+ pyodide venv .venv-pyodide
410
+ source .venv-pyodide/bin/activate
411
+ pip install dist/*.whl
412
+
413
+ - name : Test pandas for Pyodide
414
+ env :
415
+ PANDAS_CI : 1
416
+ run : |
417
+ source .venv-pyodide/bin/activate
418
+ pip install "pytest<8.1.0" hypothesis
419
+ # do not import pandas from the checked out repo
420
+ cd ..
421
+ python -c 'import pandas as pd; pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db"])'
0 commit comments