diff --git a/.github/workflows/analyze.yml b/.github/workflows/analyze.yml index dec8b191..3c615541 100644 --- a/.github/workflows/analyze.yml +++ b/.github/workflows/analyze.yml @@ -4,31 +4,25 @@ on: [push, pull_request] jobs: decomplint-isle: - name: 'ISLE annotations' + name: '${{ matrix.who }} annotations' runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + who: + - CONFIG + - ISLE + - LEGO1 steps: - uses: actions/checkout@v4 - - name: Install python libraries - run: | - pip install -r tools/requirements.txt - - - name: Run decomplint.py - run: | - python3 tools/decomplint/decomplint.py ISLE --module ISLE --warnfail - - decomplint-lego1: - name: 'LEGO1 annotations' - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 + - uses: action/setup-python@v5 - name: Install python libraries run: | - pip install -r tools/requirements.txt + python -m pip install -r tools/requirements.txt - name: Run decomplint.py run: | - python3 tools/decomplint/decomplint.py LEGO1 --module LEGO1 --warnfail + tools/decomplint/decomplint.py ${{ matrix.who }} --module ${{ matrix.who }} --warnfail diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7206c53c..72e7db7c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -67,6 +67,8 @@ jobs: repository: 'itsmattkc/msvc420' path: msvc420 + - uses: action/setup-python@v5 + - name: Setup cmake uses: jwlawson/actions-setup-cmake@v1.13 with: @@ -75,7 +77,7 @@ jobs: - name: Patch MSVC 4.2 run: | - python tools/patch_c2.py msvc420/bin/C2.EXE + tools/patch_c2.py msvc420/bin/C2.EXE - name: Build shell: cmd @@ -89,6 +91,8 @@ jobs: with: name: Win32 path: | + build/CONFIG.EXE + build/CONFIG.PDB build/ISLE.EXE build/ISLE.PDB build/LEGO1.DLL @@ -101,6 +105,8 @@ jobs: steps: - uses: actions/checkout@master + - uses: action/setup-python@v5 + - uses: actions/download-artifact@master with: name: Win32 @@ -117,6 +123,7 @@ jobs: - name: Download original island binares if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} run: | + C:\msys64\usr\bin\wget.exe https://legoisland.org/download/CONFIG.EXE --directory-prefix=legobin C:\msys64\usr\bin\wget.exe https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin C:\msys64\usr\bin\wget.exe https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin @@ -136,27 +143,31 @@ jobs: - name: Summarize Accuracy shell: bash run: | + python3 tools/reccmp/reccmp.py -S CONFIGPROGRESS.SVG -T 4252 --svg-icon tools/reccmp/config.png -H CONFIGPROGRESS.HTML legobin/CONFIG.DLL build/CONFIG.DLL build/CONFIG.PDB . | tee CONFIGPROGRESS.TXT python3 tools/reccmp/reccmp.py -S ISLEPROGRESS.SVG --svg-icon tools/reccmp/isle.png -H ISLEPROGRESS.HTML legobin/ISLE.EXE build/ISLE.EXE build/ISLE.PDB . | tee ISLEPROGRESS.TXT - python3 tools/reccmp/reccmp.py -S LEGO1PROGRESS.SVG -T 4252 --svg-icon tools/reccmp/lego1.png -H LEGO1PROGRESS.HTML legobin/LEGO1.DLL build/LEGO1.DLL build/LEGO1.PDB . | tee LEGO1PROGRESS.TXT + python3 tools/reccmp/reccmp.py -S LEGO1PROGRESS.SVG --svg-icon tools/reccmp/lego1.png -H LEGO1PROGRESS.HTML legobin/LEGO1.DLL build/LEGO1.DLL build/LEGO1.PDB . | tee LEGO1PROGRESS.TXT - name: Compare Accuracy With Current Master shell: bash run: | # Compare with current master + curl -fLSs -o CONFIGPROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/CONFIGPROGRESS.TXT curl -fLSs -o ISLEPROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/ISLEPROGRESS.TXT curl -fLSs -o LEGO1PROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/LEGO1PROGRESS.TXT + diff -u0 ISLEPROGRESS-OLD.TXT CONFIGPROGRESS.TXT || true diff -u0 ISLEPROGRESS-OLD.TXT ISLEPROGRESS.TXT || true diff -u0 LEGO1PROGRESS-OLD.TXT LEGO1PROGRESS.TXT || true - name: Test Exports shell: bash run: | - python3 tools/verexp/verexp.py legobin/LEGO1.DLL build/LEGO1.DLL + tools/verexp/verexp.py legobin/LEGO1.DLL build/LEGO1.DLL - name: Check Vtables shell: bash run: | + python3 tools/vtable/vtable.py legobin/CONFIG.EXE build/CONFIG.EXE build/CONFIG.PDB . python3 tools/vtable/vtable.py legobin/ISLE.EXE build/ISLE.EXE build/ISLE.PDB . python3 tools/vtable/vtable.py legobin/LEGO1.DLL build/LEGO1.DLL build/LEGO1.PDB . @@ -165,6 +176,7 @@ jobs: with: name: Accuracy Report path: | + CONFIGPROGRESS.* ISLEPROGRESS.* LEGO1PROGRESS.* @@ -193,10 +205,13 @@ jobs: UPLOAD_KEY: ${{ secrets.UPLOAD_KEY }} run: | ./upload.sh \ + build/CONFIG.EXE \ build/ISLE.EXE \ build/LEGO1.DLL \ + CONFIGPROGRESS.* \ ISLEPROGRESS.* \ LEGO1PROGRESS.* + curl -X POST -F key=$UPLOAD_KEY -F 'file=@CONFIGPROGRESS.SVG' https://legoisland.org/progress/ curl -X POST -F key=$UPLOAD_KEY -F 'file=@ISLEPROGRESS.SVG' https://legoisland.org/progress/ curl -X POST -F key=$UPLOAD_KEY -F 'file=@LEGO1PROGRESS.SVG' https://legoisland.org/progress/ diff --git a/tools/decomplint/decomplint.py b/tools/decomplint/decomplint.py old mode 100644 new mode 100755 diff --git a/tools/ninja/Windows/ninja.exe b/tools/ninja/Windows/ninja.exe new file mode 100755 index 00000000..e4fafa04 Binary files /dev/null and b/tools/ninja/Windows/ninja.exe differ diff --git a/tools/patch_c2.py b/tools/patch_c2.py old mode 100644 new mode 100755 diff --git a/tools/reccmp/config.png b/tools/reccmp/config.png new file mode 100644 index 00000000..1f2050ad Binary files /dev/null and b/tools/reccmp/config.png differ