https://github.com/qualcomm/armor-checkers
https://github.com/qualcomm/armor-checkers
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/qualcomm/armor-checkers
- Owner: qualcomm
- License: bsd-3-clause-clear
- Created: 2026-01-27T16:03:10.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2026-04-08T07:08:30.000Z (3 months ago)
- Last Synced: 2026-04-08T09:02:47.167Z (3 months ago)
- Size: 125 KB
- Stars: 0
- Watchers: 0
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE-OF-CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# armor-checkers
Reusable GitHub Actions and workflows for validating backward compatibility in Qualcomm C/C++ projects.
The repository provides modular API (source‑level) and ABI (binary‑level) compatibility checks to help detect api breaking changes early in CI and ensure stable releases.
### Overview
* **API Compatibility Check:** Detects source‑level breaking changes (e.g., modified/removed functions, structs, enums) using the ARMOR tool https://github.com/qualcomm/armor.
* **ABI Compatibility Check:** Validates binary‑level stability using libabigail (abidiff), detecting issues such as:
* Layout or padding changes
* Symbol additions/removals
* Incompatible binary interface changes
### Features
* Reusable GitHub Actions and workflows
* Automatic API/ABI comparison between base and head commits
* Works with any C/C++ project exposing public headers and build scripts
* Extensible design for future compatibility‑related checks
### Usage
Create a workflow (e.g., .github/workflows/compatibility-check.yml):
name: Compatibility Checks
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
armor-checkers:
uses: qualcomm/armor-checkers/.github/workflows/armor-checker.yml@v2
with:
armor-checker-options: >-
{
"build-script": "ci/build.sh",
// Optional: Use runner groups / self‑hosted runner labels
"runs-on": {
"group": "",
"labels": ["", ""]
}
// Or use a simple GitHub-hosted runner (default)
// "runs-on": "ubuntu-latest"
}
This integrates automatic API/ABI backward‑compatibility validation into your CI pipeline.
### Configuration options
`armor-checker-options` is a JSON parameter passed to the reusable workflow. It controls how API/ABI checks run.
* **Supported fields:**
* `build-script` **(required for ABI checks)**
* Specifies the script path that builds the project and generates binaries for ABI comparison.
* Default: ci/build.sh
* Update if the build script path changes
* `runs-on` **(required for API & ABI)**
* Defines which runner to execute the checks on.
* If your project already uses AWS self‑hosted runners,it is **recommended** to use them for armor-checkers, because they provide the necessary access for ARMOR Checkers workflow to upload API/ABI metrics to the S3 bucket.
* If omitted, GitHub‑hosted runners are used by default; however, in this case ARMOR Checkers cannot upload API/ABI metrics to the S3 bucket.
```
"runs-on": {
"group": "aws-runner-group",
"labels": ["label1", "label2"]
}
```
## License
armor-checkers is licensed under the [BSD-3-Clause-Clear License](https://spdx.org/licenses/BSD-3-Clause-Clear.html). See [LICENSE.txt](LICENSE.txt) for the full license text.