Revert "Update actions (#1275)"

This reverts commit 457300ddba.
This commit is contained in:
Ramen2X
2024-12-25 14:59:07 -05:00
parent 6b3fcafbe1
commit 4552505082
5 changed files with 203 additions and 227 deletions

View File

@@ -1,9 +1,6 @@
name: Analyze name: Analyze
on: on: [push, pull_request]
push:
pull_request:
workflow_dispatch:
jobs: jobs:
decomplint-isle: decomplint-isle:
@@ -18,18 +15,16 @@ jobs:
- LEGO1 - LEGO1
steps: steps:
- name: Checkout repository - uses: actions/checkout@v4
uses: actions/checkout@v4
- name: Setup Python - uses: actions/setup-python@v5
uses: actions/setup-python@v5 with:
with: python-version: '3.12'
python-version: '3.13'
- name: Setup Python modules - name: Install python libraries
run: | run: |
pip install -r tools/requirements.txt pip install -r tools/requirements.txt
- name: Run decomplint.py - name: Run decomplint.py
run: | run: |
reccmp-decomplint ${{ matrix.who }} --module ${{ matrix.who }} --warnfail reccmp-decomplint ${{ matrix.who }} --module ${{ matrix.who }} --warnfail

View File

@@ -1,9 +1,6 @@
name: Build name: Build
on: on: [push, pull_request]
push:
pull_request:
workflow_dispatch:
jobs: jobs:
fetch-deps: fetch-deps:
@@ -20,15 +17,12 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
toolchain: toolchain:
- { name: 'MSVC', shell: 'sh', setup-cmake: true, setup-ninja: true, setup-msvc: true } - { name: 'MSVC', shell: 'sh', setup-cmake: true, setup-ninja: true, setup-msvc: true }
- { name: 'msys2 mingw32', shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, clang-tidy: true, werror: true } - { name: 'msys2 mingw32', shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686, clang-tidy: true, werror: true }
- { name: 'msys2 clang32', shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686, clang-tidy: true, werror: true, no-dx5-libs: true } - { name: 'msys2 clang32', shell: 'msys2 {0}', msystem: clang32, msys-env: mingw-w64-clang-i686, clang-tidy: true, werror: true, no-dx5-libs: true }
steps: steps:
- name: Checkout repository - name: Set up MSYS2
uses: actions/checkout@v4
- name: Setup MSYS2
if: ${{ !!matrix.toolchain.msystem }} if: ${{ !!matrix.toolchain.msystem }}
uses: msys2/setup-msys2@v2 uses: msys2/setup-msys2@v2
with: with:
@@ -39,19 +33,21 @@ jobs:
${{ matrix.toolchain.msys-env }}-ninja ${{ matrix.toolchain.msys-env }}-ninja
${{ matrix.toolchain.msys-env }}-clang-tools-extra ${{ matrix.toolchain.msys-env }}-clang-tools-extra
- name: Setup CMake - name: Setup cmake
if: matrix.toolchain.setup-cmake if: matrix.toolchain.setup-cmake
uses: jwlawson/actions-setup-cmake@v2 uses: jwlawson/actions-setup-cmake@v2
- name: Setup ninja - name: Setup ninja
if: matrix.toolchain.setup-ninja if: matrix.toolchain.setup-ninja
uses: larziwau/gha-setup-ninja@master uses: ashutoshvarma/setup-ninja@master
- name: Setup vcvars - name: Setup vcvars
if: matrix.toolchain.setup-msvc if: matrix.toolchain.setup-msvc
uses: ilammy/msvc-dev-cmd@v1 uses: ilammy/msvc-dev-cmd@v1
with: with:
arch: amd64_x86 arch: amd64_x86 # Use the 64-bit x64-native cross tools to build 32-bit x86 code
- uses: actions/checkout@v4
- name: Build - name: Build
run: | run: |
@@ -64,129 +60,126 @@ jobs:
cmake --build build -- -k0 cmake --build build -- -k0
build: build:
name: MSVC 4.20 name: 'MSVC 4.20'
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout repository - uses: actions/checkout@v4
uses: actions/checkout@v4
- name: Checkout MSVC repository - uses: actions/checkout@v4
uses: actions/checkout@v4 with:
with: repository: itsmattkc/msvc420
repository: itsmattkc/MSVC420 path: msvc420
path: msvc420
- name: Setup CMake - name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2 uses: jwlawson/actions-setup-cmake@v2
with: with:
cmake-version: '3.31.x' # Use minimum supported version
cmake-version: '3.15.x'
- name: Patch MSVC - name: Patch MSVC 4.2
run: | run: |
tools/patch_c2.py msvc420/bin/C2.EXE tools/patch_c2.py msvc420/bin/C2.EXE
- name: Build - name: Build
shell: cmd shell: cmd
run: | run: |
call .\msvc420\bin\VCVARS32.BAT x86 call .\msvc420\bin\VCVARS32.BAT x86
cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles" cmake -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo -G "NMake Makefiles"
cmake --build build cmake --build build
- name: Upload artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@main
with: with:
name: Win32 name: Win32
path: | path: |
build/CONFIG.EXE build/CONFIG.EXE
build/CONFIG.PDB build/CONFIG.PDB
build/ISLE.EXE build/ISLE.EXE
build/ISLE.PDB build/ISLE.PDB
build/LEGO1.DLL build/LEGO1.DLL
build/LEGO1.PDB build/LEGO1.PDB
compare: compare:
name: Compare with master name: Compare with master
needs: [build, fetch-deps] needs: [build, fetch-deps]
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- name: Checkout repository - uses: actions/checkout@main
uses: actions/checkout@v4
- name: Setup Python - uses: actions/setup-python@v5
uses: actions/setup-python@v5 with:
with: python-version: '3.12'
python-version: '3.13'
- name: Download artifact - uses: actions/download-artifact@main
uses: actions/download-artifact@v4 with:
with: name: Win32
name: Win32 path: build
path: build
- name: Restore cached original binaries - name: Restore cached original binaries
id: cache-original-binaries id: cache-original-binaries
uses: actions/cache/restore@v4 uses: actions/cache/restore@v4
with: with:
enableCrossOsArchive: true enableCrossOsArchive: true
path: legobin path: legobin
key: legobin key: legobin
- name: Setup Python modules - name: Install python packages
shell: bash shell: bash
run: | run: |
pip install -r tools/requirements.txt pip install -r tools/requirements.txt
- name: Detect binaries - name: Detect binaries
run: | run: |
reccmp-project detect --what original --search-path legobin reccmp-project detect --what original --search-path legobin
reccmp-project detect --what recompiled --search-path build reccmp-project detect --what recompiled --search-path build
- name: Summarize accuracy - name: Summarize Accuracy
shell: bash shell: bash
run: | run: |
reccmp-reccmp -S CONFIGPROGRESS.SVG --svg-icon assets/config.png --target CONFIG | tee CONFIGPROGRESS.TXT reccmp-reccmp -S CONFIGPROGRESS.SVG --svg-icon assets/config.png --target CONFIG | tee CONFIGPROGRESS.TXT
reccmp-reccmp -S ISLEPROGRESS.SVG --svg-icon assets/isle.png --target ISLE | tee ISLEPROGRESS.TXT reccmp-reccmp -S ISLEPROGRESS.SVG --svg-icon assets/isle.png --target ISLE | tee ISLEPROGRESS.TXT
reccmp-reccmp -S LEGO1PROGRESS.SVG --svg-icon assets/lego1.png --target LEGO1 | tee LEGO1PROGRESS.TXT reccmp-reccmp -S LEGO1PROGRESS.SVG --svg-icon assets/lego1.png --target LEGO1 | tee LEGO1PROGRESS.TXT
- name: Compare accuracy with current master - name: Compare Accuracy With Current Master
shell: bash shell: bash
run: | run: |
curl -fLSs -o CONFIGPROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/CONFIGPROGRESS.TXT || echo "" >CONFIGPROGRESS-OLD.TXT # Compare with current master
curl -fLSs -o ISLEPROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/ISLEPROGRESS.TXT || echo "" >ISLEPROGRESS-OLD.TXT curl -fLSs -o CONFIGPROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/CONFIGPROGRESS.TXT || echo "" >CONFIGPROGRESS-OLD.TXT
curl -fLSs -o LEGO1PROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/LEGO1PROGRESS.TXT || echo "" >LEGO1PROGRESS-OLD.TXT curl -fLSs -o ISLEPROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/ISLEPROGRESS.TXT || echo "" >ISLEPROGRESS-OLD.TXT
curl -fLSs -o LEGO1PROGRESS-OLD.TXT https://github.com/isledecomp/isle/releases/download/continuous/LEGO1PROGRESS.TXT || echo "" >LEGO1PROGRESS-OLD.TXT
diff -u0 CONFIGPROGRESS-OLD.TXT CONFIGPROGRESS.TXT || true diff -u0 CONFIGPROGRESS-OLD.TXT CONFIGPROGRESS.TXT || true
diff -u0 ISLEPROGRESS-OLD.TXT ISLEPROGRESS.TXT || true diff -u0 ISLEPROGRESS-OLD.TXT ISLEPROGRESS.TXT || true
diff -u0 LEGO1PROGRESS-OLD.TXT LEGO1PROGRESS.TXT || true diff -u0 LEGO1PROGRESS-OLD.TXT LEGO1PROGRESS.TXT || true
- name: Test exports - name: Test Exports
shell: bash shell: bash
run: | run: |
reccmp-verexp --target LEGO1 reccmp-verexp --target LEGO1
- name: Check vtables - name: Check Vtables
shell: bash shell: bash
run: | run: |
reccmp-vtable --target CONFIG reccmp-vtable --target CONFIG
reccmp-vtable --target ISLE reccmp-vtable --target ISLE
reccmp-vtable --target LEGO1 reccmp-vtable --target LEGO1
- name: Check variables - name: Check Variables
shell: bash shell: bash
run: | run: |
reccmp-datacmp --target CONFIG reccmp-datacmp --target CONFIG
reccmp-datacmp --target ISLE reccmp-datacmp --target ISLE
reccmp-datacmp --target LEGO1 reccmp-datacmp --target LEGO1
- name: Upload artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@main
with: with:
name: Accuracy Report name: Accuracy Report
path: | path: |
CONFIGPROGRESS.* CONFIGPROGRESS.*
ISLEPROGRESS.* ISLEPROGRESS.*
LEGO1PROGRESS.* LEGO1PROGRESS.*
upload: upload:
name: Upload artifacts name: Upload artifacts
@@ -194,35 +187,32 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/isle' }} if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'isledecomp/isle' }}
steps: steps:
- name: Checkout uploadtool repository - uses: actions/checkout@v4
uses: actions/checkout@v4 with:
with: repository: probonopd/uploadtool
repository: probonopd/uploadtool
- name: Download build artifact - uses: actions/download-artifact@main
uses: actions/download-artifact@v4 with:
with: name: Win32
name: Win32 path: build
path: build
- name: Download accuracy report artifact - uses: actions/download-artifact@main
uses: actions/download-artifact@v4 with:
with: name: Accuracy Report
name: Accuracy Report
- name: Upload continuous release - name: Upload Continuous Release
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
UPLOAD_KEY: ${{ secrets.UPLOAD_KEY }} UPLOAD_KEY: ${{ secrets.UPLOAD_KEY }}
run: | run: |
./upload.sh \ ./upload.sh \
build/CONFIG.EXE \ build/CONFIG.EXE \
build/ISLE.EXE \ build/ISLE.EXE \
build/LEGO1.DLL \ build/LEGO1.DLL \
CONFIGPROGRESS.* \ CONFIGPROGRESS.* \
ISLEPROGRESS.* \ ISLEPROGRESS.* \
LEGO1PROGRESS.* 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=@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=@ISLEPROGRESS.SVG' https://legoisland.org/progress/
curl -X POST -F key=$UPLOAD_KEY -F 'file=@LEGO1PROGRESS.SVG' https://legoisland.org/progress/ curl -X POST -F key=$UPLOAD_KEY -F 'file=@LEGO1PROGRESS.SVG' https://legoisland.org/progress/

View File

@@ -1,9 +1,6 @@
name: Format name: Format
on: on: [push, pull_request]
push:
pull_request:
workflow_dispatch:
jobs: jobs:
clang-format: clang-format:
@@ -11,13 +8,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - uses: actions/checkout@v4
uses: actions/checkout@v4
- name: Run clang-format - name: Run clang-format
run: | run: |
find CONFIG LEGO1 ISLE -iname '*.h' -o -iname '*.cpp' | xargs \ find CONFIG LEGO1 ISLE -iname '*.h' -o -iname '*.cpp' | xargs \
pipx run "clang-format>=17,<18" \ pipx run "clang-format>=17,<18" \
--style=file \ --style=file \
-i -i
git diff --exit-code git diff --exit-code

View File

@@ -2,31 +2,31 @@ name: Download legobin
on: on:
workflow_call: workflow_call:
workflow_dispatch:
jobs: jobs:
fetch: fetch:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Restore cached original binaries
id: cache-original-binaries
uses: actions/cache/restore@v4
with:
enableCrossOsArchive: true
path: legobin
key: legobin
- name: Download original Island binaries - name: Restore cached original binaries
if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} id: cache-original-binaries
run: | uses: actions/cache/restore@v4
wget https://legoisland.org/download/CONFIG.EXE --directory-prefix=legobin with:
wget https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin enableCrossOsArchive: true
wget https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin path: legobin
key: legobin
- name: Cache original binaries - name: Download original island binaries
if: ${{ !steps.cache-original-binaries.outputs.cache-hit }} if: ${{ !steps.cache-original-binaries.outputs.cache-hit }}
uses: actions/cache/save@v4 run: |
with: wget https://legoisland.org/download/CONFIG.EXE --directory-prefix=legobin
enableCrossOsArchive: true wget https://legoisland.org/download/ISLE.EXE --directory-prefix=legobin
path: legobin wget https://legoisland.org/download/LEGO1.DLL --directory-prefix=legobin
key: legobin
- name: Cache original binaries
if: ${{ !steps.cache-original-binaries.outputs.cache-hit }}
uses: actions/cache/save@v4
with:
enableCrossOsArchive: true
path: legobin
key: legobin

View File

@@ -1,9 +1,6 @@
name: Naming name: Naming
on: on: [push, pull_request]
push:
pull_request:
workflow_dispatch:
jobs: jobs:
ncc: ncc:
@@ -11,42 +8,40 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - uses: actions/checkout@v4
uses: actions/checkout@v4
- name: Setup LLVM and Clang - name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2 uses: KyleMayes/install-llvm-action@v2
with: with:
version: '16' version: '16'
- name: Setup Python - uses: actions/setup-python@v5
uses: actions/setup-python@v5 with:
with: python-version: '3.12'
python-version: '3.13'
- name: Setup Python modules - name: Install python libraries
run: | run: |
pip install -r tools/requirements.txt pip install -r tools/requirements.txt
- name: Run ncc - name: Run ncc
run: | run: |
action_headers=$(find LEGO1/lego/legoomni/include/actions \ action_headers=$(find LEGO1/lego/legoomni/include/actions \
-name '*.h' -print0 | xargs -0 echo) -name '*.h' -print0 | xargs -0 echo)
python3 tools/ncc/ncc.py \ python3 tools/ncc/ncc.py \
--clang-lib ${{ env.LLVM_PATH }}/lib/libclang.so \ --clang-lib ${{ env.LLVM_PATH }}/lib/libclang.so \
--recurse \ --recurse \
--style tools/ncc/ncc.style \ --style tools/ncc/ncc.style \
--skip tools/ncc/skip.yml \ --skip tools/ncc/skip.yml \
--definition WINAPI FAR BOOL CALLBACK HWND__=HWND \ --definition WINAPI FAR BOOL CALLBACK HWND__=HWND \
--include \ --include \
util \ util \
LEGO1 \ LEGO1 \
LEGO1/omni/include \ LEGO1/omni/include \
LEGO1/lego/legoomni/include \ LEGO1/lego/legoomni/include \
LEGO1/lego/sources \ LEGO1/lego/sources \
--exclude \ --exclude \
LEGO1/omni/include/flic.h \ LEGO1/omni/include/flic.h \
LEGO1/omni/src/video/flic.cpp \ LEGO1/omni/src/video/flic.cpp \
$action_headers \ $action_headers \
--path LEGO1/omni LEGO1/lego/legoomni --path LEGO1/omni LEGO1/lego/legoomni