Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit ae841e5

Browse filesBrowse files
committed
ci: Add a build for wasm
This adds a `pyproject.toml` config for it, so you can replicate locally with cibuildwheel.
1 parent 7b46b48 commit ae841e5
Copy full SHA for ae841e5

File tree

3 files changed

+75
-1
lines changed
Filter options

3 files changed

+75
-1
lines changed

‎.github/labeler.yml

Copy file name to clipboardExpand all lines: .github/labeler.yml
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
---
22
"CI: Run cibuildwheel":
33
- changed-files:
4-
- any-glob-to-any-file: ['.github/workflows/cibuildwheel.yml']
4+
- any-glob-to-any-file:
5+
- '.github/workflows/cibuildwheel.yml'
6+
- '.github/workflows/wasm.yml'
57
"CI: Run cygwin":
68
- changed-files:
79
- any-glob-to-any-file: ['.github/workflows/cygwin.yml']

‎.github/workflows/wasm.yml

Copy file name to clipboard
+58Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
name: Build wasm wheels
3+
4+
on:
5+
# Save CI by only running this on release branches or tags.
6+
push:
7+
branches:
8+
- main
9+
- v[0-9]+.[0-9]+.x
10+
tags:
11+
- v*
12+
# Also allow running this action on PRs if requested by applying the
13+
# "Run cibuildwheel" label.
14+
pull_request:
15+
types:
16+
- opened
17+
- synchronize
18+
- reopened
19+
- labeled
20+
21+
permissions:
22+
contents: read
23+
24+
jobs:
25+
build_wasm:
26+
if: >-
27+
github.event_name == 'push' ||
28+
github.event_name == 'pull_request' && (
29+
(
30+
github.event.action == 'labeled' &&
31+
github.event.label.name == 'CI: Run cibuildwheel'
32+
) ||
33+
contains(github.event.pull_request.labels.*.name,
34+
'CI: Run cibuildwheel')
35+
)
36+
name: Build wasm
37+
runs-on: ubuntu-24.04
38+
39+
steps:
40+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
41+
with:
42+
fetch-depth: 0
43+
44+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
45+
name: Install Python
46+
with:
47+
python-version: '3.13'
48+
49+
- name: Build wheels for wasm
50+
uses: pypa/cibuildwheel@faf86a6ed7efa889faf6996aa23820831055001a # v2.23.3
51+
env:
52+
CIBW_PLATFORM: "pyodide"
53+
54+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
55+
with:
56+
name: cibw-wheels-${{ runner.os }}-${{ matrix.cibw_archs }}
57+
path: ./wheelhouse/*.whl
58+
if-no-files-found: error

‎pyproject.toml

Copy file name to clipboardExpand all lines: pyproject.toml
+14Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,3 +340,17 @@ testpaths = ["lib"]
340340
addopts = [
341341
"--import-mode=importlib",
342342
]
343+
344+
# This build is just for testing right now.
345+
[tool.cibuildwheel.pyodide]
346+
build-frontend = "build; args: --exports whole_archive"
347+
test-requires = "pytest"
348+
test-command = "pytest -p no:cacheprovider --pyargs matplotlib mpl_toolkits.axes_grid1 mpl_toolkits.axisartist mpl_toolkits.mplot3d"
349+
[tool.cibuildwheel.pyodide.config-settings]
350+
install-args = "--tags=data,python-runtime,runtime,tests"
351+
[tool.cibuildwheel.pyodide.environment]
352+
# Exceptions are needed for pybind11:
353+
# https://github.com/pybind/pybind11/pull/5298
354+
CFLAGS = "-fexceptions"
355+
CXXFLAGS = "-fexceptions"
356+
LDFLAGS = "-fexceptions"

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.