From 8d75dc300c8ef44a747498f6be399c2a9f1fa5b4 Mon Sep 17 00:00:00 2001 From: Nikhil Narayana Date: Sat, 19 Aug 2023 23:33:19 -0400 Subject: [PATCH] add windows CI builds (#82) --- .github/workflows/main.yml | 159 ++++++++++++++++--------------------- 1 file changed, 67 insertions(+), 92 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c2b5ccc075..c315c96d44 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,98 +16,73 @@ on: - "**.ini" jobs: - # windows: - # strategy: - # fail-fast: false - # matrix: - # build_type: [Netplay, Playback] - # include: - # - build_type: Netplay - # artifact_name: windows64-netplay - # build_config: -G "Ninja" -DCMAKE_BUILD_TYPE="Release" -DQt5_DIR:STRING="D:\a\dolphin\dolphin\Externals\Qt\Qt5.15.0\msvc2019_64\lib\cmake\Qt5" -DSLIPPI_PLAYBACK=false - # - build_type: Playback - # artifact_name: windows64-playback - # build_config: -G "Ninja" -DCMAKE_BUILD_TYPE="Release" -DQt5_DIR:STRING="D:\a\dolphin\dolphin\Externals\Qt\Qt5.15.0\msvc2019_64\lib\cmake\Qt5" - # env: - # DXSDK_DIR: "C:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\" - # name: "Windows ${{ matrix.build_type }}" - # runs-on: windows-2019 - # steps: - # - name: "Checkout" - # uses: actions/checkout@v3 - # with: - # submodules: recursive - # # - name: "Remove Redistributable" - # # shell: cmd - # # run: | - # # MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5} - # # MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7} - # # mkdir .\Tools\DX - # # - name: "Setup MSBuild" - # # uses: microsoft/setup-msbuild@v1 - # # - name: Cache DXSDK_Jun10.exe - # # uses: actions/cache@v3 - # # with: - # # path: ./Tools/DX/ - # # key: ${{ runner.os }} - # # - name: "Download DirectX SDK" - # # working-directory: ${{ github.workspace }} - # # shell: powershell - # # run: | - # # if (!(Test-Path ".\Tools\DX\DXSDK_Jun10.exe" -PathType Leaf)) { Invoke-WebRequest -Uri https://github.com/project-slippi/Ishiiruka/releases/download/v2.2.5/DXSDK_Jun10.exe -UseBasicParsing -OutFile ".\Tools\DX\DXSDK_Jun10.exe" } - # # - name: "Install DirectX SDK" - # # working-directory: ${{ github.workspace }} - # # shell: cmd - # # run: | - # # .\Tools\DX\DXSDK_Jun10.exe /U /F - # - name: 'Fetch Git Tags' - # shell: bash - # if: success() - # run: | - # git fetch --prune --unshallow - # echo "GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV - # echo "GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - # echo "GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV - # echo "CURR_DATE=$(date +%Y-%m-%d)" >> $GITHUB_ENV - # - uses: seanmiddleditch/gha-setup-ninja@master - # - uses: egor-tensin/vs-shell@v2 - # - name: "Build ${{ matrix.build_type }} Dolphin" - # shell: cmd - # working-directory: ${{ github.workspace }} - # run: | - # mkdir build - # cd build - # dir ..\Externals\Qt\Qt5.15.0\msvc2019_64\lib\cmake\Qt5 - # cmake ${{ matrix.build_config }} .. - # ninja - # - name: "Package ${{ matrix.build_type }}" - # working-directory: ${{ github.workspace }} - # run: | - # Xcopy /Y /E /I .\Data\Sys .\Binary\x64\Sys - # cd .\Binary\x64\ - # fsutil file createnew FIX-VCRUNTIME140-ERROR.txt 0 - # echo "Download and install this: https://aka.ms/vs/16/release/vc_redist.x64.exe" > .\FIX-VCRUNTIME140-ERROR.txt - # - name: "Add Playback codes" - # working-directory: ${{ github.workspace }} - # if: matrix.build_type == 'Playback' - # run: | - # Xcopy /Y /E /I .\Data\Sys .\Binary\x64\Sys - # Xcopy /Y /E /I .\Data\PlaybackGeckoCodes\* .\Binary\x64\Sys\GameSettings\ - # - name: Package Artifact - # working-directory: ${{ github.workspace }} - # run: | - # $FILE_NAME="${{ env.CURR_DATE }}-${{ env.GIT_HASH }}-${{ env.GIT_TAG }}-${{ matrix.artifact_name }}.zip" - # mkdir artifact - # cd .\Binary\x64\ - # fsutil file createnew portable.txt 0 - # 7z a $FILE_NAME .\* - # move $FILE_NAME ..\..\artifact\ - # - name: "Publish" - # if: success() - # uses: actions/upload-artifact@v3 - # with: - # name: ${{ matrix.artifact_name }} - # path: "./artifact/" + windows: + strategy: + fail-fast: false + matrix: + build_type: [Netplay, Playback] + include: + - build_type: Netplay + artifact_name: windows64-netplay + build_config: -G "Ninja" -DCMAKE_BUILD_TYPE="Release" -DSLIPPI_PLAYBACK=false + - build_type: Playback + artifact_name: windows64-playback + build_config: -G "Ninja" -DCMAKE_BUILD_TYPE="Release" -DSLIPPI_PLAYBACK=true + env: + DXSDK_DIR: "C:\\Program Files (x86)\\Microsoft DirectX SDK (June 2010)\\" + name: "Windows ${{ matrix.build_type }}" + runs-on: windows-2022 + steps: + - name: "Checkout" + uses: actions/checkout@v3 + with: + submodules: recursive + - name: 'Fetch Git Tags' + shell: bash + if: success() + run: | + git fetch --prune --unshallow + echo "GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV + echo "GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + echo "GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV + echo "CURR_DATE=$(date +%Y-%m-%d)" >> $GITHUB_ENV + - uses: egor-tensin/vs-shell@v2 + - name: "Build ${{ matrix.build_type }} Dolphin" + shell: cmd + working-directory: ${{ github.workspace }} + run: | + mkdir build + cd build + cmake ${{ matrix.build_config }} .. + cmake --build . --target dolphin-emu + - name: "Package ${{ matrix.build_type }}" + working-directory: ${{ github.workspace }} + run: | + Xcopy /Y /E /I .\Data\Sys .\Binary\x64\Sys + cd .\Binary\x64\ + fsutil file createnew FIX-VCRUNTIME140-ERROR.txt 0 + echo "Download and install this: https://aka.ms/vs/16/release/vc_redist.x64.exe" > .\FIX-VCRUNTIME140-ERROR.txt + - name: "Add Playback codes" + working-directory: ${{ github.workspace }} + if: matrix.build_type == 'Playback' + run: | + Xcopy /Y /E /I .\Data\Sys .\Binary\x64\Sys + Xcopy /Y /E /I .\Data\PlaybackGeckoCodes\* .\Binary\x64\Sys\GameSettings\ + - name: Package Artifact + working-directory: ${{ github.workspace }} + run: | + $FILE_NAME="${{ env.CURR_DATE }}-${{ env.GIT_HASH }}-${{ env.GIT_TAG }}-${{ matrix.artifact_name }}.zip" + mkdir artifact + cd .\Binary\x64\ + fsutil file createnew portable.txt 0 + 7z a $FILE_NAME .\* + move $FILE_NAME ..\..\artifact\ + - name: "Publish" + if: success() + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.artifact_name }} + path: "./artifact/" linux: strategy: fail-fast: false