Workflows to build all dependencies of GodotJS (v8 and libwebsockets).
- https://github.com/actions/runner-images
- https://github.com/actions/checkout
- https://github.com/actions/create-release
Different Visual C++ Compilers are involved in different prebuilt GodotJS dependency releases:
| Package | Workflow Runners | Libraries | Toolset | Platforms/Architectures |
|---|---|---|---|---|
| v8_r7 | windows-latest(2022) ubuntu-latest(22.04) |
v8(12.4.254.20) | MSVC v143(14.40.33807) | Windows(x86_64) Linux(x86_64) MacOS(ARM64) |
| v8_r9 | windows-latest(2022) ubuntu-latest(22.04) |
v8(12.4.254.20) | VS2022(17.11.3) MSVC v143(14.41.34120) |
Windows(x86_64) Linux(x86_64) MacOS(ARM64) Android(ARM64-v8a) iOS(ARM64) |
| v8_r10 | windows-2019 ubuntu-22.04 |
v8(12.4.254.21) | MSVC v142(14.29.30133) | Windows(x86_64) Linux(x86_64) MacOS(ARM64) Android(ARM64-v8a) iOS(ARM64) |
Note
Install specific VS 2022 MSVC toolset for different pacakge you used to avoid linkage errors.
Why windows_x86_64_release does not follow the same naming rules?
godot 4.3.1 generates
ActiveProjectItemList_variable name with the path name (see methods.py) it'll fail if the path contains '.' or any other characters invalid as variable name detect and rename them for better compatibility
This repository supports running our GitHub Actions locally with act.
Important:
- Always pass:
--var HOST_MACOS=truewhen running with act. It is required for macOS/iOS jobs and harmless for others. - On Apple Silicon, add
--container-architecture linux/amd64for Linux/Android jobs. - Map macOS runners to your host:
-P macos-latest=-self-hosted. - Use
workflow_dispatchon each workflow file directly (do not use build_all.yml for local runs).
Common arguments you can reuse:
- Docker images for Ubuntu:
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 -P ubuntu-22.04=catthehacker/ubuntu:act-22.04 - Artifact server path (optional):
--artifact-server-path ./artifacts
Examples below use --var HOST_MACOS=true in all commands (safe across platforms).
- LWS macOS x86_64
act workflow_dispatch \
-W .github/workflows/build_lws_macos_x86_64.yml \
-P macos-latest=-self-hosted \
--var HOST_MACOS=true \
-j build- LWS macOS arm64
act workflow_dispatch \
-W .github/workflows/build_lws_macos_arm64.yml \
-P macos-latest=-self-hosted \
--var HOST_MACOS=true \
-j build- LWS iOS device (arm64)
act workflow_dispatch \
-W .github/workflows/build_lws_ios_arm64.yml \
-P macos-latest=-self-hosted \
--var HOST_MACOS=true \
-j build- V8 macOS x86_64
act workflow_dispatch \
-W .github/workflows/build_v8_macos_x86_64.yml \
-P macos-latest=-self-hosted \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build- V8 macOS arm64
act workflow_dispatch \
-W .github/workflows/build_v8_macos_arm64.yml \
-P macos-latest=-self-hosted \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build- V8 iOS device (arm64)
act workflow_dispatch \
-W .github/workflows/build_v8_ios_arm64.yml \
-P macos-latest=-self-hosted \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j buildAdd these flags on Apple Silicon: --container-architecture linux/amd64.
- LWS Linux x86_64
act workflow_dispatch \
-W .github/workflows/build_lws_linux_x86_64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
-j build- LWS Linux arm64 (cross)
act workflow_dispatch \
-W .github/workflows/build_lws_linux_arm64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
-j build- LWS Linux arm32 (cross)
act workflow_dispatch \
-W .github/workflows/build_lws_linux_arm32.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
-j build- LWS Android arm64
act workflow_dispatch \
-W .github/workflows/build_lws_android_arm64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
-j build- LWS Android arm32
act workflow_dispatch \
-W .github/workflows/build_lws_android_arm32.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
-j build- LWS Android x86_64
act workflow_dispatch \
-W .github/workflows/build_lws_android_x86_64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
-j build- V8 Linux x86_64
act workflow_dispatch \
-W .github/workflows/build_v8_linux_x86_64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build- V8 Linux arm64
act workflow_dispatch \
-W .github/workflows/build_v8_linux_arm64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build- V8 Android arm64
act workflow_dispatch \
-W .github/workflows/build_v8_android_arm64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build- V8 Android arm32
act workflow_dispatch \
-W .github/workflows/build_v8_android_arm32.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build- V8 Android x86_64
act workflow_dispatch \
-W .github/workflows/build_v8_android_x86_64.yml \
--artifact-server-path ./artifacts \
-P ubuntu-latest=catthehacker/ubuntu:act-22.04 \
-P ubuntu-22.04=catthehacker/ubuntu:act-22.04 \
--var HOST_MACOS=true \
--input v8_version=13.5.119 \
-j build