BUILD-9020 Implement inline checks architecture#106
Conversation
f9661e3 to
f55ea0d
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR implements a hybrid architecture for the Releasability system that supports both inline (local) and lambda-based (AWS) checks. The implementation adds a new inline check framework while maintaining backward compatibility with existing lambda-based checks.
- Introduces inline check framework with abstract base class and registry system
- Updates orchestration logic to execute both check types and aggregate results
- Adds comprehensive documentation and CI/CD configuration updates
Reviewed Changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/releasability/inline_check.py | New abstract base class and context for inline checks |
| src/releasability/check_registry.py | Registry system managing both inline and lambda checks |
| src/releasability/checks/check_licenses.py | Sample inline check implementation |
| src/releasability/releasability_service.py | Enhanced service with hybrid check execution |
| src/main.py | Updated orchestration to handle both check types |
| tests/*.py | Updated test mocks and new test files for inline framework |
| .github/workflows/build.yml | Enhanced CI workflow for dual module testing |
| sonar-project.properties | Updated SonarCloud configuration |
| ARCHITECTURE.md | Comprehensive architecture documentation |
| architecture-diagram.md | Visual diagrams and execution timeline |
| action.yml | Added output for new CheckLicenses check |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
dd60e93 to
1647b54
Compare
b0b0dce to
63f6844
Compare
63f6844 to
b3ba0cb
Compare
🤖 Pull Request summaryRefactors build workflow and adds hybrid inline/lambda releasability checks architecture. • Consolidates build workflow to use single pytest commands with dual coverage reports Review Focus: The ReleasabilityService refactoring maintains backward compatibility while adding significant complexity. Pay close attention to the execution flow in
|



This pull request introduces a hybrid architecture for the Releasability system, enabling both inline (local) and lambda-based (AWS) checks. It adds a new inline check framework, updates supporting infrastructure, and provides documentation and configuration for the new approach. The changes improve performance, reliability, and extensibility, while maintaining backward compatibility with existing lambda-based checks.
Hybrid Architecture Implementation:
Added a new inline check framework:
InlineCheckandCheckContextfor inline checks (src/releasability/inline_check.py).src/releasability/check_registry.py).CheckLicenses, as a placeholder (src/releasability/checks/check_licenses.py).__init__.pyto mark the inline checks package (src/releasability/checks/__init__.py).Updated orchestration logic:
ReleasabilityServiceandsrc/main.pyto execute both inline and lambda checks, aggregate results, and expose a unified report (src/main.py).Documentation and Configuration:
Added detailed architecture documentation and diagrams:
ARCHITECTURE.mddescribing the hybrid system design and migration path.architecture-diagram.mdwith mermaid diagrams and timeline.Updated workflow and configuration files:
.github/workflows/build.ymlto install dependencies, run tests, and prepare coverage for both main andreleasability-statusmodules.sonar-project.propertiesto include both modules and coverage files, and to exclude test files from coverage.CheckLicensestoaction.yml.Key changes by theme:
1. Hybrid Inline/Lambda Check Architecture
InlineCheckandCheckContextbase classes for inline checks (src/releasability/inline_check.py).CheckRegistryfor unified management of both check types (src/releasability/check_registry.py).CheckLicenses(src/releasability/checks/check_licenses.py).src/main.py).2. Documentation and Diagrams
ARCHITECTURE.mdwith detailed hybrid system design, migration strategy, and error handling.architecture-diagram.mdwith visual diagrams and execution timeline.3. CI/CD and SonarCloud Integration
releasability-statusmodules (.github/workflows/build.yml).sonar-project.properties).CheckLicensesinline check toaction.yml.Tested here https://github.com/SonarSource/gh-action_releasability/actions/runs/17792947345/job/50573988184