Skip to content

Use GitHub action#1661

Merged
CedricGuillemet merged 8 commits intoBabylonJS:masterfrom
CedricGuillemet:useGithubAction
Apr 16, 2026
Merged

Use GitHub action#1661
CedricGuillemet merged 8 commits intoBabylonJS:masterfrom
CedricGuillemet:useGithubAction

Conversation

@CedricGuillemet
Copy link
Copy Markdown
Collaborator

@CedricGuillemet CedricGuillemet commented Apr 15, 2026

Migrate all CI/CD from Azure DevOps Pipelines to GitHub Actions:

  • Add reusable workflows for each build target:
    • build-android.yml (Ubuntu/macOS, JSC/V8)
    • build-ios.yml (deployment target parameterized)
    • build-linux.yml (Clang/GCC, JSC, sanitizers)
    • build-macos.yml (Xcode/Ninja, sanitizers)
    • build-uwp.yml (x64/arm64, direct/JSI)
    • build-win32.yml (D3D11/D3D12, direct/JSI/V8, sanitizers)
    • build-win32-shader.yml (precompiled shader test)
    • test-install-{ios,linux,macos,win32}.yml
  • Add ci.yml orchestrating all 24 build jobs
  • Remove azure-pipelines.yml, and .github/jobs/
  • replace cmake installation script with appropriate action

NOTE: I've kept nightly on AzurePipelines because of BJS PR build artifacts.

CedricGuillemet and others added 4 commits April 15, 2026 10:06
Migrate all CI/CD from Azure DevOps Pipelines to GitHub Actions:

- Add composite action .github/actions/setup-cmake for cross-platform CMake install
- Add reusable workflows for each build target:
  - build-android.yml (Ubuntu/macOS, JSC/V8)
  - build-ios.yml (deployment target parameterized)
  - build-linux.yml (Clang/GCC, JSC, sanitizers)
  - build-macos.yml (Xcode/Ninja, sanitizers)
  - build-uwp.yml (x64/arm64, direct/JSI)
  - build-win32.yml (D3D11/D3D12, direct/JSI/V8, sanitizers)
  - build-win32-shader.yml (precompiled shader test)
  - test-install-{ios,linux,macos,win32}.yml
- Add ci.yml orchestrating all 24 build jobs
- Add nightly.yml with cron schedule (weekdays 23:00 UTC)
- Remove azure-pipelines.yml, nightly.yml, and .github/jobs/

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore nightly.yml (Azure Pipelines) and remove the GitHub Actions
nightly workflow. Only the CI pipeline is migrated to GitHub Actions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Prevents artifact name collisions between regular and sanitizer builds
by appending '-sanitizer' to artifact names when enable-sanitizers is true.
Affects linux, macos, and win32 workflows.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- actions/checkout@v4 -> v5
- actions/upload-artifact@v4 -> v5
- actions/setup-java@v4 -> v5

All now use Node.js 24 runtime.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@CedricGuillemet CedricGuillemet marked this pull request as ready for review April 15, 2026 08:55
Copilot AI review requested due to automatic review settings April 15, 2026 08:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the repository’s CI matrix from Azure DevOps Pipelines to GitHub Actions by introducing a shared CMake setup composite action, reusable per-target build workflows, and a single orchestrating ci.yml workflow.

Changes:

  • Added composite action for cross-platform CMake/Ninja setup and standardized toolchain versions.
  • Added reusable build/test workflows for macOS, iOS, Linux, Android, Win32, UWP, plus install validation workflows.
  • Added ci.yml to orchestrate the full job matrix and removed the legacy Azure Pipelines CI templates/config.

Reviewed changes

Copilot reviewed 27 out of 27 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
azure-pipelines.yml Removes the legacy Azure DevOps CI entrypoint previously orchestrating the job matrix.
.github/actions/setup-cmake/action.yml Adds a composite action to install a pinned CMake version (and Ninja on macOS/Linux).
.github/workflows/ci.yml New top-level workflow orchestrating the full CI matrix via reusable workflows.
.github/workflows/build-android.yml Reusable workflow to build Android Playground for JSC/V8 across Ubuntu/macOS.
.github/workflows/build-ios.yml Reusable workflow to generate and build iOS Playground with a parameterized deployment target.
.github/workflows/build-linux.yml Reusable workflow to build and run validation/unit tests on Linux (compiler + JS engine param).
.github/workflows/build-macos.yml Reusable workflow to build and run macOS unit tests (Xcode/Ninja + sanitizer param).
.github/workflows/build-uwp.yml Reusable workflow to generate/build UWP solutions (x64/arm64, direct/JSI).
.github/workflows/build-win32.yml Reusable workflow to generate/build/test Win32 across NAPI modes and D3D11/D3D12.
.github/workflows/build-win32-shader.yml Reusable workflow to build/run the PrecompiledShaderTest on Win32.
.github/workflows/test-install-ios.yml Reusable workflow to validate iOS install packaging (configure/build/install).
.github/workflows/test-install-linux.yml Reusable workflow to validate Linux install packaging (configure/build/install).
.github/workflows/test-install-macos.yml Reusable workflow to validate macOS install packaging (configure/build/install).
.github/workflows/test-install-win32.yml Reusable workflow to validate Win32 install packaging, including building the Install/Test project.
.github/jobs/* (removed) Removes Azure Pipelines job templates superseded by GitHub Actions reusable workflows.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/test-install-linux.yml Outdated
Comment thread .github/actions/setup-cmake/action.yml Outdated
CedricGuillemet and others added 4 commits April 15, 2026 11:03
v5 still defaults to Node.js 20. v6 is the first version that
uses Node.js 24 runtime by default.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use '--config RelWithDebInfo' (space-separated) instead of
'--config=RelWithDebInfo' for consistency with other workflows.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Use jwlawson/actions-setup-cmake@v2 for cross-platform CMake version selection
- Remove .github/actions/setup-cmake/ custom composite action
- Add ninja-build to Linux apt-get installs
- Add conditional brew install ninja for macOS Ninja generator builds

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Ninja is preinstalled on GitHub macOS runners.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@CedricGuillemet CedricGuillemet merged commit 2bb85a0 into BabylonJS:master Apr 16, 2026
74 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants