Repository navigation
Conversation
- Drop install-basic-packages from prepare-for-tests and ubuntu-latest jobs (only needed on minimal self-hosted build-linux container; also drop clang and pkg-config from apt install). - Remove redundant V8 reinstall steps in test-wasm64-4gb, test-wasm64-misc, and test-esm-integration since ~/.jsvu is already restored from emscripten-cache.tar.gz. - Remove actions-cache-folder: 'emsdk-install' from setup-emsdk now that sanity.txt uses $EMSDK/upstream/bin. - Match build-linux embuilder build ALL + test_hello_world sequence to CircleCI (dropping pre-embuilder core3.test_hello_world). - Quiet tar archive/extract commands (-czf/-xzf) and remove debug ls output. - Revert unused result.test_duration assignment in test/parallel_testsuite.py.
- test-windows.yml: Use $env:EMSDK_PYTHON (exported by setup-emsdk) for pip install, bootstrap.py, and check_clean.py so test dependencies like xmlrunner are installed into the Python environment used by test/runner.exe, matching CircleCI's pip-install step. - build-and-test-linux.yml (test-other): Install the wasm32-unknown-emscripten Rust target and wasm-bindgen 0.2.128 CLI, and install ccache alongside scons, matching CircleCI's test-misc job. - prepare-for-tests/action.yml: Add $(dirname "$EMSDK_NODE") to GITHUB_PATH so tools invoking 'node' from PATH (such as meson's wasm64-emscripten.ini exe_wrapper) use emsdk's Node v24 rather than the runner's pre-installed Node v22. - install-firefox/action.yml: Preseed and install ttf-mscorefonts-installer so browser.test_sdl_ttf_render_text_solid renders with Microsoft Arial as expected by its reference image.
Some host environments (such as GitHub-hosted ubuntu-latest VMs) return multiple 127.0.0.1 entries when resolving 'localhost' via node:dns / getaddrinfo. Relax the 'localhost' IPv4 address count check from == 1 to >= 1 while keeping the exact == 1 check for numeric address lookups.
- Delete downloaded port source archives (~/cache/ports/*.zip and *.tar.*) before tarring ~/cache since Ports.fetch_project only checks .emscripten_url and never reads the archives again (~120-150 MB of already-compressed data). - Switch workspace archiving from single-threaded gzip (tar -czf) to multi-threaded zstd (tar -I 'zstd -T0 -6') and extract with tar --zstd -xf, installing zstd on the self-hosted build-linux runner. - Set compression-level: 0 on actions/upload-artifact to skip redundant single-threaded zlib re-compression of the zstd tarball.
- Install chrome@canary via @puppeteer/browsers in install-chrome/action.yml instead of skipping installation when /usr/bin/google-chrome (Chrome Stable) is present on ubuntu-latest, and export EMTEST_BROWSER to GITHUB_ENV. - Remove hardcoded EMTEST_BROWSER=/usr/bin/google-chrome and EMTEST_LACKS_SOUND_HARDWARE=1 from run-tests-chrome/action.yml to match CircleCI's run-tests-chrome step. - Add the missing test-browser-chrome-emrun job to build-and-test-linux.yml.
Use os.path.realpath(os.getcwd()) instead of os.path.abspath(os.getcwd()) when computing curr_abspath so it matches abspath = os.path.realpath(os.path.abspath(path)). On Windows, os.getcwd() preserves directory junctions and 8.3 short path names (such as C:\Users\RUNNER~1\AppData\Local\Temp on GitHub Actions windows-2022 for user runneradmin), whereas os.path.realpath() expands them via GetFinalPathNameByHandleW. That mismatch caused abspath.startswith(curr_abspath) to reject valid --embed-file and --preload-file inputs inside the current working directory.
- Add test-mac-arm64 (runs-on: macos-15, needs: build-linux) to .github/workflows/build-and-test-linux.yml so it can reuse the emscripten-cache artifact built by build-linux. Override workflow-level LANG (en_US.UTF-8), EMTEST_WASI_SYSROOT (empty), and EMTEST_DETECT_TEMPFILE_LEAKS (0) to match CircleCI's mac-arm64 executor, extract ~/cache via zstd + BSD tar while removing Linux x86_64 binaries, freeze the cache, and run crossplatform tests using emsdk's bundled Python. - Add standalone test-linux-arm64 (runs-on: ubuntu-24.04-arm) matching CircleCI's test-linux-arm64 job (unfrozen cache, native arm64 emsdk, crossplatform test suite, and check_clean.py).
Node sets process.argv[1] via fs.realpathSync(), which resolves symlinks (such as /var -> /private/var on macOS) without expanding Windows 8.3 short names (such as C:/Users/RUNNER~1/... when %TEMP% belongs to a username longer than 8 characters like runneradmin). Python 3.8+'s os.path.realpath() on Windows uses GetFinalPathNameByHandleW and expands 8.3 short names, so normalize both the expected path and the path reported in argv[0] with os.path.realpath().
When Firefox is installed via Homebrew Cask on macOS (such as on GitHub Actions macos-15 runners), shutil.which('firefox') returns a wrapper shim at /opt/homebrew/bin/firefox while the app bundle lives in /Applications/Firefox.app. Resolve symlinks on exe_path, search standard macOS Firefox.app locations alongside the existing Linux /usr/lib/firefox* directories when platform.ini is not adjacent to the executable, and fall back to OLDEST_SUPPORTED_FIREFOX with a warning on all platforms instead of raising FileNotFoundError.
Skip browser auto-detection when running --crossplatform-only on macos-15, matching test-windows.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.