Uh oh!
There was an error while loading. Please reload this page.
Migrate CI/CD from Azure Pipelines to GitHub Actions - #159
Conversation
CedricGuillemet
commented
Apr 16, 2026
- Add reusable workflows for each build target:
- build-android.yml (macOS-14, JSC/V8, emulator tests)
- build-ios.yml (Xcode version/simulator parameterized)
- build-linux.yml (GCC/Clang, sanitizers)
- build-macos.yml (Xcode, sanitizers)
- build-uwp.yml (x64/arm64, Chakra/JSI/V8)
- build-win32.yml (win32/x64, Chakra/JSI/V8, crash dumps)
- Add ci.yml orchestrating all 18 build jobs
- Remove azure-pipelines.yml and .github/jobs/
- Add reusable workflows for each build target: - build-android.yml (macOS-14, JSC/V8, emulator tests) - build-ios.yml (Xcode version/simulator parameterized) - build-linux.yml (GCC/Clang, sanitizers) - build-macos.yml (Xcode, sanitizers) - build-uwp.yml (x64/arm64, Chakra/JSI/V8) - build-win32.yml (win32/x64, Chakra/JSI/V8, crash dumps) - Add ci.yml orchestrating all 18 build jobs - Remove azure-pipelines.yml and .github/jobs/ Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Migrates the repository’s CI configuration from Azure Pipelines templates to GitHub Actions by introducing reusable workflows per platform and a single orchestrating workflow.
Changes:
- Adds a new
.github/workflows/ci.ymlworkflow that fans out into platform-specific reusable workflows. - Adds reusable workflows for Win32, UWP, macOS, iOS, Linux, and Android builds/tests.
- Removes the Azure Pipelines definition and its
.github/jobs/*job templates.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/ci.yml | New CI orchestrator that invokes reusable workflows for all targets. |
| .github/workflows/build-win32.yml | Reusable Win32 build/test workflow with crash-dump artifact upload on failure. |
| .github/workflows/build-uwp.yml | Reusable UWP build workflow (configure + build). |
| .github/workflows/build-macos.yml | Reusable macOS build/test workflow with optional sanitizers and Xcode selection. |
| .github/workflows/build-linux.yml | Reusable Linux build/test workflow with optional compiler + sanitizers. |
| .github/workflows/build-ios.yml | Reusable iOS simulator build/test workflow with Xcode + simulator selection. |
| .github/workflows/build-android.yml | Reusable Android emulator test workflow parameterized by JS engine. |
| .github/jobs/win32.yml | Removed Azure Pipelines Win32 job template. |
| .github/jobs/uwp.yml | Removed Azure Pipelines UWP job template. |
| .github/jobs/macos.yml | Removed Azure Pipelines macOS job template. |
| .github/jobs/linux.yml | Removed Azure Pipelines Linux job template. |
| .github/jobs/ios.yml | Removed Azure Pipelines iOS job template. |
| .github/jobs/android.yml | Removed Azure Pipelines Android job template. |
| .github/azure-pipelines.yml | Removed Azure Pipelines entrypoint workflow. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Detect host architecture (arm64 vs x86_64) at runtime - Use matching Android system image and ABI filter accordingly - Bump emulator API from 27 to 33 (arm64-v8a images available) - Use swiftshader_indirect GPU for CI reliability - Fix hyphenated input access to use bracket notation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Redirect emulator output to a log file instead of /dev/null - Separate wait-for-device from boot completion polling - Detect emulator crash (process died) and dump log - Add 240s boot timeout with progress output - Add step-level 5min timeout to prevent infinite hangs - Upload emulator log as artifact on failure for debugging Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
macos-14 Apple Silicon runners do not expose Hypervisor Framework, causing 'HVF error: HV_UNSUPPORTED' and immediate emulator crash. macos-13 is Intel-based with working hardware acceleration. The architecture detection step adapts automatically. Ref: actions/runner-images#9751 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace manual emulator setup with the community-standard action that properly handles HVF on Apple Silicon, system image installation, AVD creation, boot waiting, and teardown. Host architecture is detected to select the matching ABI (arm64-v8a on macos-14). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
macOS 14+ runners lack the com.apple.security.hypervisor entitlement required by the Android emulator, causing HVF errors with no workaround. Linux runners have hardware-accelerated KVM support since April 2024, making them the recommended platform for Android emulator CI. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Android emulator does not run reliably on GitHub Actions runners (HVF unsupported on macOS ARM, KVM issues on Linux). Commented out until a stable solution is available. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
PR BabylonJS#159 migrated the CI pipeline from Azure Pipelines to GitHub Actions and removed .github/azure-pipelines.yml and .github/jobs/*.yml. This merge resolves the modify/delete conflicts by accepting the deletions and re-applies the TSan work on the new workflow structure: - build-linux.yml: adds enable-thread-sanitizer input, wires ENABLE_THREAD_SANITIZER CMake flag, and sets TSAN_OPTIONS plus JSC_useConcurrentGC=0 env for the test run (the concurrent GC's SIGUSR1/sem_wait suspension deadlocks under TSan). - build-macos.yml: adds enable-thread-sanitizer input, wires ENABLE_THREAD_SANITIZER CMake flag, and sets TSAN_OPTIONS. - ci.yml: adds Ubuntu_ThreadSanitizer_clang and macOS_Xcode164_ThreadSanitizer jobs. CMakeLists.txt and .github/tsan_suppressions.txt changes from this branch are preserved unchanged. [Created by Copilot on behalf of @bghgary] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>