Skip to content

Commit bfb9e04

Browse files
committed
feat(workflow): Introduce complete development and epics workflow plans
- Added a comprehensive workflow plan for the complete development process, detailing activation checklists, milestones, PR sequences, CI lanes, and acceptance criteria. - Updated the complete epics workflow to reflect the current status of documentation consolidation, CI lane readiness, and ongoing PRs. - Implemented a link checker script to validate Markdown links across the documentation, ensuring no broken links exist. - Created a migration script to reorganize Epic 7/8/9 documentation into a canonical structure, replacing originals with archive banners. - Added offline render tests to validate the rendering process in a headless environment, ensuring basic functionality before full integration. - Enhanced ONNXDaemonClient tests to include telemetry and health checks, ensuring robust error handling and configuration validation.
1 parent 5a46d3d commit bfb9e04

File tree

66 files changed

+6181
-5443
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+6181
-5443
lines changed

.github/workflows/core-matrix.yml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,95 @@ jobs:
6666
if [[ "${USE_ONNX_RUNTIME}" == "ON" ]]; then
6767
test -f /opt/homebrew/lib/libonnxruntime.dylib && echo "ONNX lib present" || echo "ONNX lib missing"
6868
fi
69+
70+
ui-only:
71+
name: UI-only build and tests
72+
runs-on: macos-latest
73+
74+
env:
75+
BUILD_DIR: build-ui
76+
CMAKE_BUILD_TYPE: Debug
77+
BUILD_UI_ONLY: "ON"
78+
BUILD_TESTS: "ON"
79+
BUILD_LEGACY_TESTS: "OFF"
80+
BUILD_PLUGIN: "OFF"
81+
ENABLE_DAEMON_IPC: "OFF"
82+
USE_ONNX_RUNTIME: "OFF"
83+
84+
steps:
85+
- name: Checkout
86+
uses: actions/checkout@v4
87+
88+
- name: Configure
89+
run: |
90+
cmake -S . -B "${BUILD_DIR}" \
91+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
92+
-DBUILD_UI_ONLY="${BUILD_UI_ONLY}" \
93+
-DBUILD_TESTS="${BUILD_TESTS}"
94+
95+
- name: Build
96+
run: cmake --build "${BUILD_DIR}" -j 4
97+
98+
- name: Run tests (ui-only)
99+
run: ctest --test-dir "${BUILD_DIR}" --output-on-failure
100+
101+
plugin:
102+
name: Plugin build (stub - enable when plugin target ready)
103+
if: ${{ false }}
104+
runs-on: macos-latest
105+
106+
env:
107+
BUILD_DIR: build-plugin
108+
CMAKE_BUILD_TYPE: RelWithDebInfo
109+
BUILD_UI_ONLY: "OFF"
110+
BUILD_TESTS: "ON"
111+
BUILD_LEGACY_TESTS: "OFF"
112+
BUILD_PLUGIN: "ON"
113+
ENABLE_DAEMON_IPC: "OFF"
114+
USE_ONNX_RUNTIME: "OFF"
115+
116+
steps:
117+
- name: Checkout
118+
uses: actions/checkout@v4
119+
120+
- name: Configure (stub)
121+
run: echo "Plugin job stub - to be enabled once plugin target lands"
122+
123+
e2e:
124+
name: E2E headless render tests (stub)
125+
if: ${{ false }}
126+
runs-on: macos-latest
127+
needs: plugin
128+
129+
env:
130+
BUILD_DIR: build
131+
CMAKE_BUILD_TYPE: RelWithDebInfo
132+
BUILD_UI_ONLY: "OFF"
133+
BUILD_TESTS: "ON"
134+
BUILD_PLUGIN: "ON"
135+
136+
steps:
137+
- name: Checkout
138+
uses: actions/checkout@v4
139+
140+
- name: Stub
141+
run: echo "E2E job stub - will run offline_render tests"
142+
143+
packaging:
144+
name: Packaging (DMG) (stub)
145+
if: ${{ false }}
146+
runs-on: macos-latest
147+
needs: plugin
148+
149+
env:
150+
BUILD_DIR: build
151+
CMAKE_BUILD_TYPE: RelWithDebInfo
152+
BUILD_UI_ONLY: "OFF"
153+
BUILD_PLUGIN: "ON"
154+
155+
steps:
156+
- name: Checkout
157+
uses: actions/checkout@v4
158+
159+
- name: Stub
160+
run: echo "Packaging job stub - produce DMG artifacts when enabled"
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Nightly Sanitizers (Core)
2+
3+
on:
4+
schedule:
5+
- cron: "0 6 * * *" # 06:00 UTC daily
6+
workflow_dispatch:
7+
8+
jobs:
9+
asan-ubsan-core:
10+
name: Core with ASan/UBSan
11+
runs-on: macos-latest
12+
env:
13+
BUILD_DIR: build-sanitizers
14+
CMAKE_BUILD_TYPE: RelWithDebInfo
15+
BUILD_UI_ONLY: "OFF"
16+
BUILD_TESTS: "ON"
17+
BUILD_LEGACY_TESTS: "OFF"
18+
BUILD_PLUGIN: "OFF"
19+
ENABLE_DAEMON_IPC: "OFF"
20+
USE_ONNX_RUNTIME: "OFF"
21+
# Sanitizer runtime options (tune as needed)
22+
ASAN_OPTIONS: "detect_leaks=1,check_initialization_order=1,strict_init_order=1"
23+
UBSAN_OPTIONS: "print_stacktrace=1"
24+
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
29+
- name: Show toolchain
30+
run: |
31+
uname -a
32+
clang --version || true
33+
cmake --version
34+
35+
- name: Configure (ASan/UBSan)
36+
run: |
37+
cmake -S . -B "${BUILD_DIR}" \
38+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
39+
-DBUILD_UI_ONLY="${BUILD_UI_ONLY}" \
40+
-DBUILD_TESTS="${BUILD_TESTS}" \
41+
-DBUILD_LEGACY_TESTS="${BUILD_LEGACY_TESTS}" \
42+
-DBUILD_PLUGIN="${BUILD_PLUGIN}" \
43+
-DUSE_ONNX_RUNTIME="${USE_ONNX_RUNTIME}" \
44+
-DENABLE_DAEMON_IPC="${ENABLE_DAEMON_IPC}" \
45+
-DCMAKE_CXX_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer" \
46+
-DCMAKE_C_FLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer" \
47+
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined" \
48+
-DCMAKE_SHARED_LINKER_FLAGS="-fsanitize=address,undefined"
49+
50+
- name: Build
51+
run: cmake --build "${BUILD_DIR}" -j 3
52+
53+
- name: Run tests (sanitizers)
54+
run: |
55+
ctest --test-dir "${BUILD_DIR}" --output-on-failure -j 1

CMakeLists.txt

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,32 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
1616
# Add JUCE as a subdirectory (always needed)
1717
add_subdirectory(Libs/JUCE)
1818

19+
# -----------------------------------------------------------------------------
20+
# Global ONNX Runtime detection (available to tests and non-plugin targets)
21+
# This ensures matrix CI with BUILD_PLUGIN=OFF can still detect ONNX presence.
22+
# -----------------------------------------------------------------------------
23+
if(NOT DEFINED ONNXRUNTIME_FOUND)
24+
option(USE_ONNX_RUNTIME "Enable ONNX Runtime for Quality Mode" ON)
25+
if(USE_ONNX_RUNTIME)
26+
# Default Homebrew paths on macOS; can be overridden by environment/cache
27+
set(ONNXRUNTIME_INCLUDE_DIR /opt/homebrew/Cellar/onnxruntime/1.22.1/include/onnxruntime)
28+
set(ONNXRUNTIME_LIBRARY /opt/homebrew/lib/libonnxruntime.dylib)
29+
30+
if(EXISTS ${ONNXRUNTIME_INCLUDE_DIR}/onnxruntime_cxx_api.h AND EXISTS ${ONNXRUNTIME_LIBRARY})
31+
set(ONNXRUNTIME_FOUND TRUE)
32+
set(ONNXRUNTIME_INCLUDE_DIRS ${ONNXRUNTIME_INCLUDE_DIR})
33+
set(ONNXRUNTIME_LIBRARIES ${ONNXRUNTIME_LIBRARY})
34+
message(STATUS "Global ONNX Runtime found for tests and non-plugin targets")
35+
else()
36+
set(ONNXRUNTIME_FOUND FALSE)
37+
message(STATUS "Global ONNX Runtime not found at expected Homebrew paths")
38+
endif()
39+
else()
40+
set(ONNXRUNTIME_FOUND FALSE)
41+
message(STATUS "Global ONNX Runtime disabled (USE_ONNX_RUNTIME=OFF)")
42+
endif()
43+
endif()
44+
1945
# -----------------------------------------------------------------------------
2046
# UI-only test target (Phase 1 green-build)
2147
# -----------------------------------------------------------------------------
@@ -1514,7 +1540,7 @@ endif()
15141540
if(ONNXRUNTIME_FOUND)
15151541
target_include_directories(test_Epic7_AI_Integration PRIVATE ${ONNXRUNTIME_INCLUDE_DIRS})
15161542
target_link_libraries(test_Epic7_AI_Integration PRIVATE ${ONNXRUNTIME_LIBRARIES})
1517-
target_compile_definitions(test_Epic7_AI_Integration PRIVATE USE_ONNX_RUNTIME=1)
1543+
target_compile_definitions(test_Epic7_AI_Integration PRIVATE ONNX_RUNTIME_AVAILABLE=1)
15181544
endif()
15191545

15201546
target_compile_features(test_Epic7_AI_Integration PRIVATE cxx_std_17)
@@ -1525,6 +1551,15 @@ endif()
15251551
JUCE_MODAL_LOOPS_PERMITTED=1
15261552
)
15271553

1554+
# Offline render placeholder E2E (to be wired to plugin render in PR 6)
1555+
add_executable(test_offline_render
1556+
tests/e2e/audio/offline_render_tests.cpp
1557+
)
1558+
target_link_libraries(test_offline_render PRIVATE
1559+
gtest_main
1560+
)
1561+
target_compile_features(test_offline_render PRIVATE cxx_std_17)
1562+
15281563
# Epic 7 Security Audit Test
15291564
add_executable(test_Epic7_Security_Audit
15301565
tests/e2e/security/test_epic7_security_audit.cpp
@@ -1600,6 +1635,7 @@ endif()
16001635
gtest_discover_tests(test_Epic7_Security_Audit)
16011636
gtest_discover_tests(test_Epic7_Error_Handling)
16021637
gtest_discover_tests(test_Epic7_Cross_Platform)
1638+
gtest_discover_tests(test_offline_render)
16031639

16041640
message(STATUS "E2E Testing enabled - Building comprehensive test suite including Epic 7 AI validation and security audit")
16051641
else()

0 commit comments

Comments
 (0)