Add GolDPState class and parents #18
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: [push, pull_request] | |
| jobs: | |
| fetch-deps: | |
| name: Download original binaries | |
| uses: ./.github/workflows/racersbin.yml | |
| build-current-toolchain: | |
| name: Current MSVC | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup cmake | |
| uses: jwlawson/actions-setup-cmake@v2 | |
| - name: Setup ninja | |
| uses: ashutoshvarma/setup-ninja@master | |
| - name: Setup vcvars | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: amd64_x86 | |
| - name: Install LLVM | |
| uses: KyleMayes/install-llvm-action@v2 | |
| with: | |
| version: '21' | |
| - name: Build | |
| run: | | |
| cmake -S . -B build -GNinja ` | |
| -DCMAKE_CXX_COMPILER=cl ` | |
| -DCMAKE_BUILD_TYPE=Debug ` | |
| -DENABLE_CLANG_TIDY=ON ` | |
| -Werror=dev | |
| cmake --build build -- -k0 | |
| build: | |
| name: 'MSVC 6.0' | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/checkout@v6 | |
| with: | |
| repository: isledecomp/MSVC600-8168 | |
| path: msvc600 | |
| - name: Setup cmake | |
| uses: jwlawson/actions-setup-cmake@v2 | |
| with: | |
| cmake-version: '3.15.x' | |
| - name: Build | |
| shell: cmd | |
| run: | | |
| call .\msvc600\VC98\Bin\VCVARS32.BAT x86 | |
| cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles" | |
| cmake --build build | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@main | |
| with: | |
| name: Win32 | |
| path: | | |
| build/LEGORacers.exe | |
| build/LEGORacers.pdb | |
| build/GolDP.dll | |
| build/GolDP.pdb | |
| verify: | |
| name: Verify decomp | |
| needs: [build, fetch-deps] | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: Win32 | |
| path: build | |
| - name: Restore cached original binaries | |
| id: cache-original-binaries | |
| uses: actions/cache/restore@v5 | |
| with: | |
| enableCrossOsArchive: true | |
| path: racersbin | |
| key: racersbin | |
| - name: Install python packages | |
| shell: bash | |
| run: | | |
| pip install -r tools/requirements.txt | |
| - name: Detect binaries | |
| run: | | |
| reccmp-project detect --what original --search-path racersbin | |
| reccmp-project detect --what recompiled --search-path build | |
| - name: Summarize Accuracy | |
| shell: bash | |
| run: | | |
| reccmp-reccmp -S LEGORACERSPROGRESS.SVG --svg-icon assets/legoracers.png --target LEGORACERS --total 3986 --nolib --json LEGORACERSPROGRESS.json | |
| reccmp-reccmp -S GOLDPPROGRESS.SVG --svg-icon assets/goldp.png --target GOLDP --total 1071 --nolib --json GOLDPPROGRESS.json | |
| - name: Compare Accuracy With Current Master | |
| shell: bash | |
| env: | |
| RELEASE_URL: https://github.com/isledecomp/racers/releases/download/continuous | |
| run: | | |
| curl -fLSs -o LEGORACERSPROGRESS-old.json $RELEASE_URL/LEGORACERSPROGRESS.json || echo "" >LEGORACERSPROGRESS-old.json | |
| curl -fLSs -o GOLDPPROGRESS-old.json $RELEASE_URL/GOLDPPROGRESS.json || echo "" >GOLDPPROGRESS-old.json | |
| reccmp-reccmp --target LEGORACERS --nolib --diff LEGORACERSPROGRESS-old.json || echo "Current master not found" | |
| reccmp-reccmp --target GOLDP --nolib --diff GOLDPPROGRESS-old.json || echo "Current master not found" | |
| - name: Check Vtables | |
| shell: bash | |
| run: | | |
| reccmp-vtable --target LEGORACERS | |
| reccmp-vtable --target GOLDP | |
| - name: Check Variables | |
| shell: bash | |
| run: | | |
| reccmp-datacmp --target LEGORACERS | |
| reccmp-datacmp --target GOLDP | |
| - name: Upload Artifact | |
| uses: actions/upload-artifact@main | |
| with: | |
| name: Accuracy Report | |
| path: | | |
| LEGORACERSPROGRESS* | |
| GOLDPPROGRESS* | |
| upload: | |
| name: Upload artifacts | |
| needs: [verify] | |
| runs-on: ubuntu-latest | |
| if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/racers' }} | |
| permissions: | |
| contents: write | |
| pages: write | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| repository: probonopd/uploadtool | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: Win32 | |
| path: build | |
| - uses: actions/download-artifact@v8 | |
| with: | |
| name: Accuracy Report | |
| - name: Upload Continuous Release | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| ./upload.sh \ | |
| build/LEGORacers.exe \ | |
| build/GolDP.dll \ | |
| LEGORACERSPROGRESS* \ | |
| GOLDPPROGRESS* | |
| - name: Prepare Pages | |
| run: | | |
| mkdir -p progress | |
| cp LEGORACERSPROGRESS.SVG progress/ | |
| cp GOLDPPROGRESS.SVG progress/ | |
| - uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: progress/ | |
| - name: Deploy to GitHub Pages | |
| uses: actions/deploy-pages@v5 | |
| decomplint: | |
| name: ${{ matrix.module }} annotations | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - module: LEGORACERS | |
| path: LEGORacers | |
| - module: GOLDP | |
| path: GolDP | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Install python libraries | |
| run: | | |
| pip install -r tools/requirements.txt | |
| - name: Run decomplint | |
| run: | | |
| reccmp-decomplint ${{ matrix.path }} --module ${{ matrix.module }} --warnfail | |
| clang-format: | |
| name: c++ clang-format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Run clang-format | |
| run: | | |
| find LEGORacers GolDP tools -iname '*.h' -o -iname '*.cpp' | xargs \ | |
| pipx run "clang-format>=21,<22" \ | |
| --style=file \ | |
| -i | |
| git diff --color --exit-code | |
| naming: | |
| name: Naming conventions | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install LLVM and Clang | |
| uses: KyleMayes/install-llvm-action@v2 | |
| with: | |
| version: '21' | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Install python libraries | |
| run: | | |
| pip install clang==21.* pyyaml | |
| - name: Run ncc | |
| run: | | |
| python3 tools/ncc/ncc.py \ | |
| --clang-lib ${{ env.LLVM_PATH }}/lib/libclang.so \ | |
| --recurse \ | |
| --style tools/ncc/ncc.style \ | |
| --definition WINAPI FAR BOOL CALLBACK HWND__=HWND \ | |
| --include \ | |
| util \ | |
| LEGORacers/include \ | |
| LEGORacers \ | |
| GolDP/include \ | |
| GolDP \ | |
| --path LEGORacers GolDP |