name: C++ Runtime Compatibility Test on: push: workflow_dispatch: jobs: test-cpp-java-compatibility: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} 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 (Ubuntu) if: matrix.os == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y build-essential cmake - name: Install build dependencies (macOS) if: matrix.os == 'macos-latest' run: | brew install 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: Build spine-libgdx dependency working-directory: spine-libgdx run: ./gradlew build - 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-${{ matrix.os }} path: tests/output/ retention-days: 7