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.

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

path

Subdirectory containing the source code files to adapt.

.

engine-repo

The GitHub repository of the CLI engine.

dev-centr/equivalence-engine

engine-version

Git ref/tag of the engine to compile and run.

v1.3.2

rules-repo

The GitHub repository of the migration ruleset.

dev-centr/equivalence-rules-code

rules-version

Git ref/tag of the rules repository to pull from.

v1.0.0

library

Sub-path within the rules repo defining the library (e.g., python/PyQt).

""

from

Starting version boundary to migrate from.

(Required)

to

Target version boundary to migrate to.

(Required)

in-place

Overwrite matches directly in-place (true or false).

true

out-dir

Output directory to write adapted files to (if not in-place).

""

extensions

Comma-separated list of file extensions to scan.

.py,.cpp,.h,.js,.ts,.astro

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'