Commit ec6b3c2
authored
Add comprehensive macOS testing to PR workflow (#4857)
## Overview
This PR adds macOS testing to the pull request workflow to monitor
macOS-specific build issues without blocking development. The approach
uses `continue-on-error: true` to collect failure data while maintaining
a working CI/CD pipeline.
## Changes Made
### PR Workflow (test-pr.yml)
- **Added `test-macos-build` job** that runs on `macos-15`
- **Non-blocking execution**: Uses `continue-on-error: true` to prevent
PR failures
- **Comprehensive testing**:
- Homebrew formula validation using `brew audit --strict`
- Formula installation from source using `brew install
--build-from-source`
- Basic functionality testing with `kompile` for both LLVM and Haskell
backends
- Formula debugging artifacts uploaded for troubleshooting
### Release Workflow (release.yml)
- **Made macOS jobs non-blocking**: Added `continue-on-error: true` to
both:
- `macos-build` job (Build MacOS Package)
- `macos-test` job (Test MacOS Package)
- **Prevents release blocking**: macOS failures won't prevent releases
from completing
## Key Benefits
- **Data Collection**: Monitor macOS build issues without breaking the
pipeline
- **Early Detection**: Catch macOS-specific problems in PRs before they
reach releases
- **Incremental Fixes**: Address issues over time without pressure to
fix immediately
- **Working CI/CD**: Maintain functional builds for all other platforms
- **Debugging Support**: Upload artifacts for troubleshooting failed
builds
## Current Status
- ✅ **PR testing**: macOS tests run but don't block PR merges
- ✅ **Release testing**: macOS builds don't block releases
- ✅ **Clean codebase**: No complex workarounds or modifications to core
build files
- ✅ **Monitoring**: Can collect data on macOS-specific failures
## Remaining TODOs
After further investigation of the collected failure data, the following
items need to be addressed:
### High Priority
- [ ] **Java 17 Compatibility**: Resolve Spotless/Google Java Format
compatibility issues on macOS
- [ ] **Maven Dependencies**: Fix dependency resolution problems in
Homebrew build environment
- [ ] **Build Environment**: Address macOS-specific build toolchain
issues
### Medium Priority
- [ ] **Homebrew Formula**: Optimize formula for better macOS
compatibility
- [ ] **Error Handling**: Improve error reporting and debugging
capabilities
- [ ] **Performance**: Optimize build times for macOS runners
### Future Enhancements
- [ ] **CloudRepo Integration**: Enable proper Maven artifact publishing
for PR testing
- [ ] **Staging Repositories**: Integration with staging Maven
repositories
- [x] **Enhanced Monitoring**: Better failure analysis and reporting
## Testing Strategy
The macOS testing job will:
1. Run on all PRs targeting the `develop` branch
2. Execute comprehensive Homebrew formula testing
3. Upload debugging artifacts on failure
4. **Not block PR merges** if it fails (due to `continue-on-error:
true`)
## Related Issues
- Addresses macOS build reliability issues in the release workflow
- Provides foundation for incremental macOS build improvements
- Establishes monitoring system for macOS-specific problems
- Complements existing non-blocking macOS testing in release workflow
## Next Steps
1. Monitor macOS test results over several PR cycles
2. Analyze failure patterns and root causes
3. Implement targeted fixes based on collected data
4. Gradually improve macOS build reliability
5. Eventually remove `continue-on-error` when issues are resolved1 parent 9dbdda3 commit ec6b3c2
2 files changed
+120
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
302 | 302 | | |
303 | 303 | | |
304 | 304 | | |
| 305 | + | |
305 | 306 | | |
306 | 307 | | |
307 | 308 | | |
| |||
400 | 401 | | |
401 | 402 | | |
402 | 403 | | |
403 | | - | |
| 404 | + | |
404 | 405 | | |
405 | 406 | | |
406 | 407 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
337 | 337 | | |
338 | 338 | | |
339 | 339 | | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
0 commit comments