From 8689ef63cd814f1a1f95acb57e1750773acc0f50 Mon Sep 17 00:00:00 2001 From: dcvz Date: Fri, 17 May 2024 08:17:38 +0200 Subject: [PATCH] Split build process --- .github/workflows/validate.yml | 82 ++++++++++++++++++++++++---------- 1 file changed, 59 insertions(+), 23 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 896aeec..9db36f6 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -9,12 +9,11 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - build: - runs-on: ${{ matrix.os }} + build-unix: + runs-on: ubuntu-latest strategy: matrix: type: [ Debug, Release ] - os: [ ubuntu-latest ] steps: - name: Checkout uses: actions/checkout@v4 @@ -23,12 +22,7 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ runner.os }}-rt64-ccache - - name: Install Windows Dependencies - if: runner.os == 'Windows' - run: | - choco install ninja - Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue + key: ${{ runner.os }}-z64re-ccache - name: Install Linux Dependencies if: runner.os == 'Linux' run: | @@ -49,11 +43,7 @@ jobs: sudo make install sudo cp -av /usr/local/lib/libSDL* /lib/x86_64-linux-gnu/ echo ::endgroup:: - - name: Configure Developer Command Prompt - if: runner.os == 'Windows' - uses: ilammy/msvc-dev-cmd@v1 - name: Prepare Build - if: runner.os != 'Windows' run: |- git clone https://${{ secrets.PAT }}@github.com/dcvz/zre.git ./zre/process.sh @@ -64,30 +54,76 @@ jobs: run: | git clone https://github.com/Mr-Wiseguy/N64Recomp.git --recurse-submodules --branch symbol-file-toml-update cd N64Recomp - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build - cmake --build cmake-build --config Debug --target N64Recomp -j 8 - cmake --build cmake-build --config Debug --target RSPRecomp -j 8 + + # enable ccache + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + + # Build N64Recomp & RSPRecomp + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build + cmake --build cmake-build --config Release --target N64Recomp -j 8 + cmake --build cmake-build --config Release --target RSPRecomp -j 8 + + # Copy N64Recomp & RSPRecomp to root directory cp cmake-build/N64Recomp . cp cmake-build/RSPRecomp . - name: Run N64Recomp & RSPRecomp - if: runner.os != 'Windows' run: | ./N64Recomp us.rev1.toml ./RSPRecomp aspMain.us.rev1.toml ./RSPRecomp njpgdspMain.us.rev1.toml - name: Build ZeldaRecomp (Unix) - if: runner.os != 'Windows' run: |- # enable ccache export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" - cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build - cmake --build cmake-build --config Debug --target rt64 -j 8 - - name: Build ZeldaRecomp (Windows) - if: runner.os == 'Windows' + cmake -DCMAKE_BUILD_TYPE=${{ matrix.type }} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build + cmake --build cmake-build --config ${{ matrix.type }} --target rt64 -j 8 + build-windows: + runs-on: windows-latest + strategy: + matrix: + type: [ Debug, Release ] + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ runner.os }}-z64re-ccache + - name: Install Windows Dependencies + run: | + choco install ninja gnupg + Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue + - name: Configure Developer Command Prompt + uses: ilammy/msvc-dev-cmd@v1 + - name: Prepare Build + run: |- + git clone https://${{ secrets.PAT }}@github.com/dcvz/zre.git + ./zre/process.ps1 + env: + LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }} + - name: Build N64Recomp & RSPRecomp + run: | + git clone https://github.com/Mr-Wiseguy/N64Recomp.git --recurse-submodules --branch symbol-file-toml-update + cd N64Recomp + + # enable ccache + set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH" + + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build + cmake --build cmake-build --config Release --target N64Recomp -j 8 + cmake --build cmake-build --config Release --target RSPRecomp -j 8 + - name: Run N64Recomp & RSPRecomp + run: | + ./N64Recomp.exe us.rev1.toml + ./RSPRecomp.exe aspMain.us.rev1.toml + ./RSPRecomp.exe njpgdspMain.us.rev1.toml + - name: Build ZeldaRecomp (Unix) run: |- # enable ccache set $env:PATH="$env:USERPROFILE/.cargo/bin;$env:PATH" cmake -DCMAKE_BUILD_TYPE=${{ matrix.type }} -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_MAKE_PROGRAM=ninja -G Ninja -S . -B cmake-build - cmake --build cmake-build --config Debug --target rt64 -j 8 + cmake --build cmake-build --config ${{ matrix.type }} --target rt64 -j 8