Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
a5d7b00
chore: release 0.3.0 (#569)
github-actions[bot] Aug 3, 2026
78ea228
chore: sync main back into develop after v0.3.0 release
JeanPhilippeKernel Aug 3, 2026
df43791
fix(deps): pin gtest to v1.17.0 to avoid operator<< deletion on newer…
JeanPhilippeKernel Aug 3, 2026
7ed4a84
ci: add workflow_dispatch trigger to manually publish release assets
JeanPhilippeKernel Aug 4, 2026
2717b03
chore: sync main into develop after v0.3.0 release
JeanPhilippeKernel Aug 4, 2026
ded7966
ci(build): drop macOS x64, cache LLVM and deps (#572)
JeanPhilippeKernel Aug 4, 2026
e4854ec
feat(core): add IsInitialized() to Logger and ThreadPoolHelper (#574)
JeanPhilippeKernel Aug 6, 2026
748348d
feat(engine): move VFS into EngineContext, pass MemoryManager to Engi…
JeanPhilippeKernel Aug 6, 2026
8cdac13
docs(engine): reevaluate engine lifecycle doc against current impleme…
JeanPhilippeKernel Aug 6, 2026
7f9b627
fix(engine): align shutdown sequence with engine-lifecycle spec (#577)
JeanPhilippeKernel Aug 6, 2026
ba824cb
feat(profiling): add memory profiling, profiler buffer and CPU profil…
JeanPhilippeKernel Aug 6, 2026
2ad66a9
docs(rendering): add rendering architecture future-plan docs (#579)
JeanPhilippeKernel Aug 7, 2026
fa6e01e
feat(logging): introduce channel-aware logging policy, ring buffer, a…
JeanPhilippeKernel Aug 7, 2026
722f4e3
fix(build): include LoggingDefaults.cmake so ZENGINE_LOG_LEVEL_* are …
JeanPhilippeKernel Aug 7, 2026
72f64ea
fix(logging): make k_min_level runtime-mutable; add SetMinLevel / Set…
JeanPhilippeKernel Aug 8, 2026
e930d78
fix(tests): use ZENGINE_CORE_WARN in BackwardsCompatMacro test — CORE…
JeanPhilippeKernel Aug 8, 2026
60770cd
feat(input): introduce InputManager — poll-based input with action sl…
JeanPhilippeKernel Aug 11, 2026
ed4da0b
feat(camera): redesign FlyCamera with InputManager integration (#583)
JeanPhilippeKernel Aug 11, 2026
5f66c48
feat(memory): introduce GpuAllocator with VMA segregated pool foundat…
JeanPhilippeKernel Aug 11, 2026
dbf6650
fix(rendering): initialise render targets to swapchain size, closes #…
JeanPhilippeKernel Aug 11, 2026
36b4752
feat(vfs): add VFSFileWatcher with cross-platform backend (FSEvents, …
jnyfah Aug 11, 2026
c60483f
feat(vfs): implement .meta sidecar system for stable UUID persistence…
JeanPhilippeKernel Aug 11, 2026
b16f00f
docs: update implementation status across all design documents
JeanPhilippeKernel Aug 11, 2026
d23b69e
docs: correct implementation status for input, engine-lifecycle, prof…
JeanPhilippeKernel Aug 11, 2026
ddfa929
fix(tests): remove OverflowTriggersAssertion — Cocoa dialog hangs CI …
JeanPhilippeKernel Aug 12, 2026
2488f12
feat(ecs): implement hybrid Actor-ECS architecture with system schedu…
JeanPhilippeKernel Aug 12, 2026
ad15bfd
feat(ecs): implement WorldTick system scheduler (#587)
JeanPhilippeKernel Aug 12, 2026
62c7187
feat(engine): implement fixed-timestep game loop (#588)
JeanPhilippeKernel Aug 12, 2026
3d3d7ad
feat(import): implement GLB/GLTF import pipeline via fastgltf (#589)
JeanPhilippeKernel Aug 12, 2026
0e91f6e
feat(rrm): RenderResourceManager, packed geometry buffers, and scene …
JeanPhilippeKernel Aug 13, 2026
a92a6bb
chore(migration): Phase 4+5 — delete orphaned Rendering::Components h…
JeanPhilippeKernel Aug 14, 2026
373d5a0
fix(imgui): font atlas upload via owned-copy deferral through RRM (#592)
JeanPhilippeKernel Aug 14, 2026
3093b5b
feat(rrm): UploadBuffer, GetBuffer, typed EnqueueDeletion — complete …
JeanPhilippeKernel Aug 14, 2026
5da6804
feat(vfs/editor): VFS backend hierarchy, engine assets via VFS, UE-st…
JeanPhilippeKernel Aug 14, 2026
cae715b
feat(editor,rendering): grid redesign, camera fixes, gizmo projection…
JeanPhilippeKernel Aug 16, 2026
8409159
feat(editor,importer): asset importer panel — permanent cook + lazy …
JeanPhilippeKernel Aug 17, 2026
6ea85bc
docs: update design docs to reflect current implementation state (#605)
JeanPhilippeKernel Aug 17, 2026
6e8af79
Add files via upload
JeanPhilippeKernel Aug 17, 2026
5c74a11
feat(editor): application icon on window and macOS Dock (#610)
JeanPhilippeKernel Aug 17, 2026
5f1cd07
refactor(rendering): migrate SkyboxPass/GridPass geometry into RRM gl…
JeanPhilippeKernel Aug 18, 2026
7592abc
fix(vulkan): eliminate all vkDestroyDevice validation errors on shutd…
JeanPhilippeKernel Aug 18, 2026
3e0c753
feat(engine): MainThreadScheduler — lock-free MPSC post from backgrou…
JeanPhilippeKernel Aug 18, 2026
5092294
fix: show crash dialog on main thread to fix NSInternalInconsistencyE…
JeanPhilippeKernel Aug 18, 2026
e7465c2
refactor(containers): make Array<T> move-only and fix all copy sites …
JeanPhilippeKernel Aug 18, 2026
d034118
fix(rendering): restore DeferFree in FramebufferVNext::Dispose (#617)
JeanPhilippeKernel Aug 18, 2026
9420d21
docs: fix 12 design docs based on codebase audit (#618)
JeanPhilippeKernel Aug 18, 2026
83c3c55
refactor(threadpool): lock-free SPSC/MPSC queues, C-style tasks, zero…
JeanPhilippeKernel Aug 18, 2026
e972a34
feat(ecs): add 7 missing ECS component headers (#619)
JeanPhilippeKernel Aug 18, 2026
e8c42c2
test(ecs): add ActorTest.cpp — Actor lifecycle and component tests (#…
JeanPhilippeKernel Aug 18, 2026
6f41d02
fix(vfs): add VFSOpenFlags::Create and Truncate — closes #607 (#621)
JeanPhilippeKernel Aug 18, 2026
bdf00db
fix(crashhandler): copy SignalOrException into struct buffer instead …
JeanPhilippeKernel Aug 19, 2026
9d3e022
fix(crashhandler): guard signal handler + print log on test failure (…
JeanPhilippeKernel Aug 19, 2026
0fed388
fix(swapchain): replace HasRecreationPending with RecreationState mac…
JeanPhilippeKernel Aug 19, 2026
9a4da30
fix(ecs): WorldCommands staging buffers for parallel-wave systems (#628)
JeanPhilippeKernel Aug 19, 2026
305a4c1
feat(editor): wire Outliner and Inspector to ECS ActorManager (#630)
JeanPhilippeKernel Aug 19, 2026
64c7737
fix(importer): handle sources::Vector in GLB texture extraction (#631)
JeanPhilippeKernel Aug 20, 2026
0095a54
fix(assetimport)!: fix dangling paths, correct asset routing, migrate…
JeanPhilippeKernel Aug 20, 2026
46540f8
fix(importer): fix GLB texture extraction and optimize extraction loo…
JeanPhilippeKernel Aug 20, 2026
6e97835
fix(#603): bind material texture handles to mesh submeshes at draw ti…
JeanPhilippeKernel Aug 20, 2026
0af884d
fix(#600): handle sources::URI in GltfImporter texture extraction (#636)
JeanPhilippeKernel Aug 20, 2026
43be35f
fix(rendering): mesh not visible after VFSScanner pre-registers UUID …
JeanPhilippeKernel Aug 20, 2026
40740f7
fix(#635): structural memory budget cleanups (#637)
JeanPhilippeKernel Aug 20, 2026
26be907
fix(rendering): GBuffer pipeline, second-launch asset reload, HashMap…
JeanPhilippeKernel Aug 21, 2026
7340303
fix(rendering): retire mesh geometry slot on actor delete (#640)
JeanPhilippeKernel Aug 21, 2026
d01e849
feat(rendering): render graph redesign — typed indices, automatic bar…
JeanPhilippeKernel Aug 21, 2026
37fb0a2
docs(ecs): correct component-reflection.md against current codebase (…
JeanPhilippeKernel Aug 22, 2026
9167143
fix(tetragrama): replace UIDispatcher with MainThreadScheduler; fix N…
JeanPhilippeKernel Aug 22, 2026
2654303
refactor(rendering): remove legacy pre-rewrite rendering primitives (…
JeanPhilippeKernel Aug 23, 2026
4a353f2
docs(memory): add TLSF allocator integration design doc (#654)
JeanPhilippeKernel Aug 23, 2026
564cb5e
fix(deps): pin simdjson as explicit FetchContent dep before fastgltf …
JeanPhilippeKernel Aug 24, 2026
4bacf04
feat(ecs): wire ECS components into render scene and light pipeline (…
JeanPhilippeKernel Aug 24, 2026
2901720
fix(importer): fire on_progress callbacks in AssimpImporter::ImportFi…
JeanPhilippeKernel Aug 24, 2026
a896440
feat(importer): add import options tab bar UI and wire to importers (…
JeanPhilippeKernel Aug 24, 2026
cb44a50
feat(ecs): FieldType, FieldDescriptor, ComponentMeta reflection types…
jnyfah Aug 24, 2026
cc1216d
fix(rendering): four Bistro rendering blockers (#661)
JeanPhilippeKernel Aug 24, 2026
c50f5bf
feat(rendering): CPU frustum culling — sphere-frustum test per instan…
JeanPhilippeKernel Aug 24, 2026
4cfb257
feat(ecs): ComponentReflectionRegistry (#662)
jnyfah Aug 24, 2026
11bff11
fix(deps): enable ASSIMP_BUILD_FBX_IMPORTER — FBX was compiled out
JeanPhilippeKernel Aug 24, 2026
7517a1f
feat(ecs): create .cpp files and register reflection metadata (#669)
jnyfah Aug 24, 2026
4d2be3e
feat(importer): ufbx FBX importer + meshoptimizer + Bistro pipeline f…
JeanPhilippeKernel Aug 24, 2026
c065b7e
feat(ecs/editor): scene graph — local transforms, HierarchySystem, UE…
JeanPhilippeKernel Aug 25, 2026
0329245
chore(deps): upgrade Dear ImGui 1.89.9 -> 1.92.9b-docking (#675)
JeanPhilippeKernel Aug 25, 2026
d1b2788
feat(ecs): migrate InspectorViewUIComponent to generic reflection loo…
jnyfah Aug 25, 2026
c664122
feat(ecs): fix (#678)
jnyfah Aug 28, 2026
e737159
docs(presentations): add memory architecture and system heap analysis…
JeanPhilippeKernel Aug 31, 2026
b5219d9
feat(zui): ZUI system — docking, text editing, scroll, Doxygen docs +…
JeanPhilippeKernel Aug 31, 2026
97cae5d
docs(ui-system): mark ZUI as done — merged via PR #679
JeanPhilippeKernel Aug 31, 2026
6a8dc18
fix(editor): store zui_layout.ini in ZodiacEngine/Settings/ — closes …
JeanPhilippeKernel Aug 31, 2026
8628116
chore: remove patches/ directory and update README dependency list (#…
JeanPhilippeKernel Aug 31, 2026
e921629
chore: remove legacy ImGui content browser icon assets
JeanPhilippeKernel Aug 31, 2026
ad02ff1
docs(readme): update supported platforms — remove 'under active revis…
JeanPhilippeKernel Aug 31, 2026
49035f9
docs: add MkDocs Material site with GitHub Pages deploy workflow
JeanPhilippeKernel Sep 1, 2026
b7f25fe
docs: deploy to zodiac-engine-docs repo via peaceiris/actions-gh-pages
JeanPhilippeKernel Sep 1, 2026
133cced
docs(component-reflection): update status, fix §2 registry table, add…
JeanPhilippeKernel Sep 1, 2026
6fc5508
docs(scene-serialization): document current state gap + fix status an…
JeanPhilippeKernel Sep 1, 2026
bb8b13b
docs(scene-serialization): fix 9 API/namespace errors found in codeba…
JeanPhilippeKernel Sep 1, 2026
e420bed
docs(scene-serialization): fix 5 remaining compile errors from valida…
JeanPhilippeKernel Sep 1, 2026
a1c455b
fix(memory): fix ArenaAllocator and PoolAllocator bugs — closes #680 …
JeanPhilippeKernel Sep 1, 2026
7213f19
test(memory): aggressive regression tests for allocator fixes (#721)
JeanPhilippeKernel Sep 1, 2026
8e68d92
feat(memory): TLSFSlab wrapper — closes #687 (#722)
JeanPhilippeKernel Sep 1, 2026
edb5159
feat(memory): per-worker thread_local TLSFSlab in ThreadPool — closes…
JeanPhilippeKernel Sep 1, 2026
1cfebdd
feat(memory): m_upload_slabs[MAX_WORKERS] in RRM + RegisterWorkerInit…
JeanPhilippeKernel Sep 1, 2026
54c8cb2
feat(memory): Phase 1 upload pipeline — closes #690 #691 #692 #693 (#…
JeanPhilippeKernel Sep 1, 2026
a806544
feat(memory): Phase 2 — typed allocator for containers + AssetManager…
JeanPhilippeKernel Sep 1, 2026
5155086
docs(memory): update tlsf-allocator-integration.md to reflect Phase 1…
JeanPhilippeKernel Sep 1, 2026
eab71a2
fix(memory): remove remaining Buffer.data() in bitmap tests
JeanPhilippeKernel Sep 1, 2026
a568759
feat(memory): slab-backed lambda closures + Bitmap buffer allocation …
JeanPhilippeKernel Sep 1, 2026
e94edde
fix(memory): lazy VirtualAlloc commit on Windows + mmap overcommit on…
JeanPhilippeKernel Sep 1, 2026
1bc8185
refactor(bitmap): reshape API — enum class, factory functions, Bitmap…
JeanPhilippeKernel Sep 2, 2026
c16fd1c
fix(memory): 64-bit page-size arithmetic in ArenaAllocator on Windows…
JeanPhilippeKernel Sep 2, 2026
24a39d2
fix(ui): clamp dock-split span to kMinPanelPx in LayoutNode — closes …
JeanPhilippeKernel Sep 2, 2026
189827e
fix(importer): guard meshopt against out-of-range submesh indices — c…
JeanPhilippeKernel Sep 2, 2026
d5165f2
fix(ui): clamp dock tree root rect in ZUIDockLayout — closes #732 (re…
JeanPhilippeKernel Sep 2, 2026
99a049d
docs(memory): mark §10.2/10.3 as done (PR #729), note Bitmap reshape …
JeanPhilippeKernel Sep 3, 2026
a6dda0e
docs: audit design docs for completion, move fully-shipped ones to co…
JeanPhilippeKernel Sep 3, 2026
d66ffb2
docs(fly-camera): correct a wrong correctness note from the previous …
JeanPhilippeKernel Sep 3, 2026
8edbcac
docs: deep re-verification pass, correct several false completion claims
JeanPhilippeKernel Sep 3, 2026
a02a75b
fix(vulkan): remove backward timeline clamp in swapchain recreation (…
JeanPhilippeKernel Sep 3, 2026
7b0d94b
fix(logging): no-op Logger::Log when not initialized (#747)
BetterAndBetterII Sep 4, 2026
4af5165
Rendering foundation hardening: real RenderGraph sort, GpuAllocator p…
JeanPhilippeKernel Sep 4, 2026
6580f7d
feat(rendering): redesign texture pipeline around one canonical handl…
JeanPhilippeKernel Sep 4, 2026
c30420a
docs(rrm): correct render-resource-manager.md for the texture pipelin…
JeanPhilippeKernel Sep 5, 2026
a75e4f5
fix(vulkan): guard QueueSubmit's optional args, fix GetQueue transfer…
JeanPhilippeKernel Sep 5, 2026
74a92b1
fix(assets): keep asset UUID identity consistent across import, meta,…
JeanPhilippeKernel Sep 6, 2026
f6f60d7
fix(editor): Content Browser context menus, File menu, and drag-and-d…
JeanPhilippeKernel Sep 6, 2026
18d1512
feat(ecs): Scene::AddComponentRaw + InspectorPanel Add Component popu…
jnyfah Sep 6, 2026
9cbb02e
fix(importers): route ImportFile scratch allocations through each imp…
JeanPhilippeKernel Sep 6, 2026
2c9cc38
fix(assets): stabilize mesh/material UUIDs and enable hot-reload swap…
JeanPhilippeKernel Sep 6, 2026
a946796
fix(assets): load materials/textures when dragging a cooked mesh onto…
JeanPhilippeKernel Sep 8, 2026
91382d0
feat(rendering): batch bindless descriptor writes, fix nonuniformEXT,…
JeanPhilippeKernel Sep 8, 2026
26e7257
feat(streaming): virtual geometry streaming — pool allocator, evictio…
JeanPhilippeKernel Sep 8, 2026
f2560b1
feat(scene): SceneSnapshot, ISceneSerializer, ComponentSerializerRegi…
jnyfah Sep 8, 2026
ba17b88
refactor(rendering): drop GPUTypes.h — replace gpuvec3/gpuvec4 with V…
JeanPhilippeKernel Sep 8, 2026
e4b3c35
fix(vfs): double-checked locking in VFSZipFile (#744), path-traversal…
JeanPhilippeKernel Sep 8, 2026
5b981cd
diag: ASSERT_TIMELINE_MONOTONIC guard on all timeline semaphore signa…
JeanPhilippeKernel Sep 8, 2026
5970c15
diag: log semaphore handle + exact values before asserting
JeanPhilippeKernel Sep 8, 2026
e06704a
fix(vulkan): set signalSemaphoreValueCount=0 in present bridge submit
JeanPhilippeKernel Sep 9, 2026
4321c2c
diag: log RenderTimeline state at Present() entry + QueueSubmit semap…
JeanPhilippeKernel Sep 9, 2026
bcd679a
diag: assert submit_1 wait array count matches, log at submit_1
JeanPhilippeKernel Sep 9, 2026
3ecf304
fix(vulkan): redesign Present() submit bridge — eliminate RenderTimel…
JeanPhilippeKernel Sep 9, 2026
ef4097f
fix(vulkan): migrate to vkQueueSubmit2, enable synchronization2, fix …
JeanPhilippeKernel Sep 9, 2026
f5c01fe
fix(rendering): deferred texture upload — eliminate same-frame GPU st…
JeanPhilippeKernel Sep 9, 2026
6c3e606
fix(editor): async mesh deserialization on drag-drop — eliminate rend…
JeanPhilippeKernel Sep 9, 2026
da8d423
style: clang-format fixes for vkQueueSubmit2, deferred upload, and as…
JeanPhilippeKernel Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
25 changes: 20 additions & 5 deletions .github/workflows/Engine-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,28 @@ name: Engine CI
on:
push:
branches: [ main, develop ]
paths:
- 'ZEngine/**'
- 'Tetragrama/**'
- 'Obelisk/**'
- 'Resources/**'
- 'Scripts/**'
- 'CMakeLists.txt'
- 'CMakePresets.json'
- 'dependencies.cmake'
- '.github/workflows/**'
pull_request:
branches: [ main, develop ]
paths:
- 'ZEngine/**'
- 'Tetragrama/**'
- 'Obelisk/**'
- 'Resources/**'
- 'Scripts/**'
- 'CMakeLists.txt'
- 'CMakePresets.json'
- 'dependencies.cmake'
- '.github/workflows/**'
workflow_dispatch:
inputs:
run_debug:
Expand All @@ -26,12 +46,7 @@ jobs:
uses: ./.github/workflows/job-commitlint.yml

clang-format:
strategy:
matrix:
directories: [ZEngine, Tetragrama, Obelisk, Resources/Shaders]
uses: ./.github/workflows/job-clangformat.yml
with:
srcDirectory: ${{ matrix.directories }}

windows:
needs: [commitlint, clang-format]
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Deploy Docs

on:
push:
branches: [main]
paths:
- "docs/**"
- "mkdocs.yml"
workflow_dispatch:

permissions:
contents: read

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Install MkDocs Material
run: pip install mkdocs-material

- name: Build site
run: mkdocs build

- name: Deploy to zodiac-engine-docs
uses: peaceiris/actions-gh-pages@v4
with:
personal_token: ${{ secrets.DOCS_DEPLOY_TOKEN }}
external_repository: JeanPhilippeKernel/zodiac-engine-docs
publish_branch: gh-pages
publish_dir: ./site
15 changes: 8 additions & 7 deletions .github/workflows/job-clangformat.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
name: ZEngine Code Formatting
name: Code Formatting Check

on:
workflow_call:
inputs:
srcDirectory:
type: string

jobs:
format:
Expand All @@ -14,9 +11,13 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v6

- name: update llvm to version 22
run: choco upgrade llvm
- name: Install LLVM 22
run: choco install llvm --version=22.1.0 --allow-downgrade --no-progress -y

- name: Checking formatting
run: .\Scripts\ClangFormat.ps1 -SourceDirectory ${{ github.workspace }}/${{ inputs.srcDirectory }} -RunAsCheck
run: |
.\Scripts\ClangFormat.ps1 -SourceDirectory ${{ github.workspace }}/ZEngine -RunAsCheck
.\Scripts\ClangFormat.ps1 -SourceDirectory ${{ github.workspace }}/Tetragrama -RunAsCheck
.\Scripts\ClangFormat.ps1 -SourceDirectory ${{ github.workspace }}/Obelisk -RunAsCheck
.\Scripts\ClangFormat.ps1 -SourceDirectory ${{ github.workspace }}/Resources/Shaders -RunAsCheck
shell: pwsh
5 changes: 3 additions & 2 deletions .github/workflows/job-cmakebuild-macOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ on:
default: 'Debug'
architecture:
type: string
default: 'x64'
default: 'arm64'

jobs:
cmake-build:
name: cmake-build-macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
runs-on: ${{ inputs.architecture == 'x64' && 'macos-15-intel' || 'macos-latest' }}
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -41,4 +41,5 @@ jobs:
path: |
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/bin/
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/lib/*vulkan*
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/lib/freetype.framework/**
Result.Darwin.${{inputs.architecture}}.${{inputs.configuration}}/tests
10 changes: 7 additions & 3 deletions .github/workflows/job-cmakebuild-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,17 @@ on:
jobs:
cmake-build:
name: cmake-build-windows-${{ inputs.configuration }}
runs-on: windows-latest
runs-on: windows-2025
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: update llvm to version 22
run: choco upgrade llvm
- name: Install LLVM 22
run: choco install llvm --version=22.1.0 --allow-downgrade --no-progress -y

- name: Exclude build directory from Windows Defender
run: Add-MpPreference -ExclusionPath "${{ github.workspace }}"
shell: pwsh

- name: CMake Build
run: .\Scripts\BuildEngine.ps1 -Configurations ${{inputs.configuration}} -RunClangFormat 0
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/job-deploy-macOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ on:
default: 'Release'
architecture:
type: string
default: 'x64'
default: 'arm64'

jobs:
deploy:
name: deploy-macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
runs-on: ${{ inputs.architecture == 'x64' && 'macos-15-intel' || 'macos-latest' }}
runs-on: macos-latest
steps:
- uses: actions/download-artifact@v6
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/job-test-macOS.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ on:
default: 'Debug'
architecture:
type: string
default: 'x64'
default: 'arm64'

jobs:
test:
name: test-macOS-${{ inputs.architecture }}-${{ inputs.configuration }}
runs-on: ${{ inputs.architecture == 'x64' && 'macos-15-intel' || 'macos-latest' }}
runs-on: macos-latest
steps:
- name: Download Artifacts
uses: actions/download-artifact@v6
Expand Down
25 changes: 5 additions & 20 deletions .github/workflows/macOS-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,56 +19,41 @@ on:
jobs:
cmake-build-debug:
if: ${{ inputs.run_debug }}
strategy:
matrix:
architecture: [x64, arm64]
uses: ./.github/workflows/job-cmakebuild-macOS.yml
with:
configuration: Debug
architecture: ${{ matrix.architecture }}
architecture: arm64
targetFramework: ${{ inputs.targetFramework }}

cmake-build-release:
if: ${{ inputs.run_release || inputs.run_deploy }}
strategy:
matrix:
architecture: [x64, arm64]
uses: ./.github/workflows/job-cmakebuild-macOS.yml
with:
configuration: Release
architecture: ${{ matrix.architecture }}
architecture: arm64
targetFramework: ${{ inputs.targetFramework }}

test-debug:
needs: cmake-build-debug
if: ${{ inputs.run_debug }}
strategy:
matrix:
architecture: [x64, arm64]
uses: ./.github/workflows/job-test-macOS.yml
with:
configuration: Debug
architecture: ${{ matrix.architecture }}
architecture: arm64

test-release:
needs: cmake-build-release
if: ${{ inputs.run_release || inputs.run_deploy }}
strategy:
matrix:
architecture: [x64, arm64]
uses: ./.github/workflows/job-test-macOS.yml
with:
configuration: Release
architecture: ${{ matrix.architecture }}
architecture: arm64

deploy:
needs: test-release
if: ${{ inputs.run_deploy }}
strategy:
matrix:
architecture: [x64, arm64]
uses: ./.github/workflows/job-deploy-macOS.yml
with:
configuration: Release
architecture: ${{ matrix.architecture }}
architecture: arm64
targetFramework: ${{ inputs.targetFramework }}
11 changes: 0 additions & 11 deletions .github/workflows/publish-prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,6 @@ jobs:
github-token: ${{ secrets.GITHUB_TOKEN }}
path: artifacts/Windows-x64-Release

- name: Download macOS x64 artifact
if: steps.check-tag.outputs.skipped != 'true'
uses: actions/download-artifact@v6
with:
name: macOS-x64-Release
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ secrets.GITHUB_TOKEN }}
path: artifacts/macOS-x64-Release

- name: Download macOS arm64 artifact
if: steps.check-tag.outputs.skipped != 'true'
uses: actions/download-artifact@v6
Expand All @@ -84,7 +75,6 @@ jobs:
VERSION="${{ steps.check-tag.outputs.version }}"
cd artifacts
zip -r "ZEngine-${VERSION}-Windows-x64.zip" Windows-x64-Release/
zip -r "ZEngine-${VERSION}-macOS-x64.zip" macOS-x64-Release/
zip -r "ZEngine-${VERSION}-macOS-arm64.zip" macOS-arm64-Release/
tar -czf "ZEngine-${VERSION}-Linux-x64.tar.gz" linux-Release/

Expand All @@ -99,6 +89,5 @@ jobs:
body_path: /tmp/release-notes.md
files: |
artifacts/ZEngine-${{ steps.check-tag.outputs.version }}-Windows-x64.zip
artifacts/ZEngine-${{ steps.check-tag.outputs.version }}-macOS-x64.zip
artifacts/ZEngine-${{ steps.check-tag.outputs.version }}-macOS-arm64.zip
artifacts/ZEngine-${{ steps.check-tag.outputs.version }}-Linux-x64.tar.gz
12 changes: 2 additions & 10 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
run_release: false
run_deploy: true

publish-macos:
publish-macos-arm64:
needs: release-please
if: ${{ needs.release-please.outputs.release_created || github.event_name == 'workflow_dispatch' }}
uses: ./.github/workflows/macOS-build.yml
Expand All @@ -60,7 +60,7 @@ jobs:
run_deploy: true

upload-artifacts:
needs: [release-please, publish-windows, publish-macos, publish-linux]
needs: [release-please, publish-windows, publish-macos-arm64, publish-linux]
if: ${{ needs.release-please.outputs.release_created || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
permissions:
Expand All @@ -72,12 +72,6 @@ jobs:
name: Windows-x64-Release
path: artifacts/Windows-x64-Release

- name: Download macOS x64 artifact
uses: actions/download-artifact@v6
with:
name: macOS-x64-Release
path: artifacts/macOS-x64-Release

- name: Download macOS arm64 artifact
uses: actions/download-artifact@v6
with:
Expand All @@ -96,7 +90,6 @@ jobs:
VERSION="${VERSION#v}"
cd artifacts
zip -r "ZEngine-${VERSION}-Windows-x64.zip" Windows-x64-Release/
zip -r "ZEngine-${VERSION}-macOS-x64.zip" macOS-x64-Release/
zip -r "ZEngine-${VERSION}-macOS-arm64.zip" macOS-arm64-Release/
tar -czf "ZEngine-${VERSION}-Linux-x64.tar.gz" linux-Release/

Expand All @@ -106,6 +99,5 @@ jobs:
tag_name: ${{ needs.release-please.outputs.tag_name || github.event.inputs.tag_name }}
files: |
artifacts/ZEngine-*-Windows-x64.zip
artifacts/ZEngine-*-macOS-x64.zip
artifacts/ZEngine-*-macOS-arm64.zip
artifacts/ZEngine-*-Linux-x64.tar.gz
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -423,3 +423,12 @@ CMakeSettings.json

# MacOS files
.DS_Store
SampleProject/

# Presentation exports
*.pdf
*.pptx
.claude/worktrees/

# MkDocs build output
site/
Loading
Loading