From 2f7111b0c5492ec4ecb0f6ef8ae0477b254e7f56 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 21 Jul 2025 02:43:41 +0200 Subject: [PATCH] Add C++ runtime compatibility test workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verifies C++ runtime produces identical skeleton data output to Java reference implementation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/spine-cpp-compatibility.yml | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/spine-cpp-compatibility.yml diff --git a/.github/workflows/spine-cpp-compatibility.yml b/.github/workflows/spine-cpp-compatibility.yml new file mode 100644 index 000000000..1a48a1c80 --- /dev/null +++ b/.github/workflows/spine-cpp-compatibility.yml @@ -0,0 +1,48 @@ +name: C++ Runtime Compatibility Test + +on: + push: + workflow_dispatch: + +jobs: + test-cpp-java-compatibility: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install build dependencies + run: | + sudo apt-get update + sudo apt-get install -y build-essential cmake + + - name: Cache Gradle packages + uses: actions/cache@v4 + with: + path: ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + restore-keys: ${{ runner.os }}-gradle + + - name: Run C++ vs Java compatibility test + working-directory: tests + run: ./test.sh cpp -s spineboy -f + + - name: Upload test artifacts on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: test-output-files + path: tests/output/ + retention-days: 7 \ No newline at end of file