GitHub Action CI/CD Integration
The Equivalence Engine Action is a modular, lightweight GitHub Action designed to automate source code and path adaptations directly in your GitHub CI/CD workflows.
Recommended CI Pipeline Pattern (Fully Pinned)
To ensure your builds are fully deterministic and repeatable, we strongly recommend pinning:
1. The GitHub Action version reference (e.g. @v2.1.1).
2. The engine-version parameter (the CLI release ref).
3. The rules-version parameter (the ruleset release ref).
- name: Adapt code
uses: dev-centr/[email protected]
with:
engine-version: v1.3.2
rules-repo: dev-centr/equivalence-rules-code
rules-version: v1.0.0
from: '5.15'
to: '6.0'
library: 'python/PyQt'
in-place: 'true'
Action Parameters (Inputs)
| Parameter | Description | Default |
|---|---|---|
|
Subdirectory containing the source code files to adapt. |
|
|
The GitHub repository of the CLI engine. |
|
|
Git ref/tag of the engine to compile and run. |
|
|
The GitHub repository of the migration ruleset. |
|
|
Git ref/tag of the rules repository to pull from. |
|
|
Sub-path within the rules repo defining the library (e.g., |
|
|
Starting version boundary to migrate from. |
(Required) |
|
Target version boundary to migrate to. |
(Required) |
|
Overwrite matches directly in-place ( |
|
|
Output directory to write adapted files to (if not in-place). |
|
|
Comma-separated list of file extensions to scan. |
|
Advanced Dual-Release Pipeline
For projects maintaining support for both legacy and modern library versions, you can configure the action to output the adapted code to a secondary folder (e.g., dist/qt6) without modifying your primary source tree:
- name: Generate PyQt6 Compatible Distribution
uses: dev-centr/[email protected]
with:
engine-version: v1.3.2
rules-version: v1.0.0
from: '5.15'
to: '6.0'
library: 'python/PyQt'
out-dir: 'dist/qt6'