Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .github/workflows/reusable-wasi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ jobs:
WASMTIME_VERSION: 38.0.3
WASI_SDK_VERSION: 24
WASI_SDK_PATH: /opt/wasi-sdk
CROSS_BUILD_PYTHON: cross-build/build
CROSS_BUILD_WASI: cross-build/wasm32-wasip1
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down Expand Up @@ -51,12 +50,14 @@ jobs:
run: python3 Tools/wasm/wasi.py configure-build-python -- --config-cache --with-pydebug
- name: "Make build Python"
run: python3 Tools/wasm/wasi.py make-build-python
- name: "Configure host"
- name: "Display build info of the build Python"
run: python3 Tools/wasm/wasi.py pythoninfo-build
- name: "Configure host/WASI Python"
# `--with-pydebug` inferred from configure-build-python
run: python3 Tools/wasm/wasi.py configure-host -- --config-cache
- name: "Make host"
- name: "Make host/WASI Python"
run: python3 Tools/wasm/wasi.py make-host
- name: "Display build info"
run: make --directory "${CROSS_BUILD_WASI}" pythoninfo
- name: "Display build info of the host/WASI Python"
run: python3 Tools/wasm/wasi.py pythoninfo-host
- name: "Test"
run: make --directory "${CROSS_BUILD_WASI}" test
32 changes: 31 additions & 1 deletion Tools/wasm/wasi.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,12 @@ def make_build_python(context, working_dir):
print(f"🎉 {binary} {version}")


@subdir(BUILD_DIR)
def pythoninfo_build_python(context, working_dir):
"""Display build info of the build Python."""
call(["make", "pythoninfo"], quiet=context.quiet)


def find_wasi_sdk():
"""Find the path to wasi-sdk."""
if wasi_sdk_path := os.environ.get("WASI_SDK_PATH"):
Expand Down Expand Up @@ -316,13 +322,21 @@ def build_all(context):
steps = [
configure_build_python,
make_build_python,
pythoninfo_build_python,
configure_wasi_python,
make_wasi_python,
pythoninfo_wasi_python,
]
for step in steps:
step(context)


@subdir(lambda context: CROSS_BUILD_DIR / context.host_triple)
def pythoninfo_wasi_python(context, working_dir):
"""Display build info of the host/WASI Python."""
call(["make", "pythoninfo"], quiet=context.quiet)


def clean_contents(context):
"""Delete all files created by this script."""
if CROSS_BUILD_DIR.exists():
Expand Down Expand Up @@ -364,6 +378,9 @@ def main():
make_build = subcommands.add_parser(
"make-build-python", help="Run `make` for the build Python"
)
pythoninfo_build = subcommands.add_parser(
"pythoninfo-build", help="Display build info of the build Python"
)
configure_host = subcommands.add_parser(
"configure-host",
help="Run `configure` for the "
Expand All @@ -374,15 +391,20 @@ def main():
make_host = subcommands.add_parser(
"make-host", help="Run `make` for the host/WASI"
)
pythoninfo_host = subcommands.add_parser(
"pythoninfo-host", help="Display build info of the host/WASI Python"
)
subcommands.add_parser(
"clean", help="Delete files and directories created by this script"
)
for subcommand in (
build,
configure_build,
make_build,
pythoninfo_build,
configure_host,
make_host,
pythoninfo_host,
):
subcommand.add_argument(
"--quiet",
Expand Down Expand Up @@ -421,7 +443,12 @@ def main():
"(default designed for wasmtime 14 or newer: "
f"`{default_host_runner}`)",
)
for subcommand in build, configure_host, make_host:
for subcommand in (
build,
configure_host,
make_host,
pythoninfo_host,
):
subcommand.add_argument(
"--host-triple",
action="store",
Expand All @@ -434,10 +461,13 @@ def main():
dispatch = {
"configure-build-python": configure_build_python,
"make-build-python": make_build_python,
"pythoninfo-build": pythoninfo_build_python,
"configure-host": configure_wasi_python,
"make-host": make_wasi_python,
"pythoninfo-host": pythoninfo_wasi_python,
"build": build_all,
"clean": clean_contents,
None: lambda args: parser.print_help(),
}
dispatch[context.subcommand](context)

Expand Down
Loading