|
@@ -0,0 +1,445 @@
|
|
|
|
+name: continuous-integration
|
|
|
|
+on: [push, pull_request]
|
|
|
|
+
|
|
|
|
+jobs:
|
|
|
|
+ linux-os:
|
|
|
|
+ runs-on: ubuntu-22.04
|
|
|
|
+ env:
|
|
|
|
+ ALSOFT_CONF: resources/alsoft.conf
|
|
|
|
+ DISPLAY: :99
|
|
|
|
+ steps:
|
|
|
|
+ - name: Update APT
|
|
|
|
+ run: sudo apt-get update
|
|
|
|
+ - name: Install Dependencies
|
|
|
|
+ run: |
|
|
|
|
+ sudo apt-get install --assume-yes build-essential git make cmake autoconf automake \
|
|
|
|
+ libtool pkg-config libasound2-dev libpulse-dev libaudio-dev \
|
|
|
|
+ libjack-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev \
|
|
|
|
+ libxfixes-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev \
|
|
|
|
+ libgl1-mesa-dev libdbus-1-dev libudev-dev libgles2-mesa-dev \
|
|
|
|
+ libegl1-mesa-dev libibus-1.0-dev fcitx-libs-dev libsamplerate0-dev \
|
|
|
|
+ libsndio-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev \
|
|
|
|
+ libfuse2 wmctrl openbox mesa-vulkan-drivers libvulkan1 vulkan-tools \
|
|
|
|
+ vulkan-validationlayers libcurl4-openssl-dev
|
|
|
|
+ - name: Checkout love-appimage-source
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ with:
|
|
|
|
+ repository: love2d/love-appimage-source
|
|
|
|
+ ref: 12.x
|
|
|
|
+ - name: Checkout LÖVE
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ with:
|
|
|
|
+ path: love2d-${{ github.sha }}
|
|
|
|
+ - name: Get Dependencies for AppImage
|
|
|
|
+ shell: python
|
|
|
|
+ env:
|
|
|
|
+ LOVE_BRANCH: ${{ github.sha }}
|
|
|
|
+ run: |
|
|
|
|
+ import os
|
|
|
|
+ for i in range(250):
|
|
|
|
+ if os.system(f"make getdeps LOVE_BRANCH={os.environ['LOVE_BRANCH']}") == 0:
|
|
|
|
+ raise SystemExit(0)
|
|
|
|
+ raise Exception("make getdeps failed")
|
|
|
|
+ - name: Build AppImage
|
|
|
|
+ run: make LOVE_BRANCH=${{ github.sha }}
|
|
|
|
+ - name: Print LuaJIT branch
|
|
|
|
+ run: git -C LuaJIT-v2.1 branch -v
|
|
|
|
+ - name: Artifact
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: love-linux-x86_64.AppImage
|
|
|
|
+ path: love-${{ github.sha }}.AppImage
|
|
|
|
+ - name: Artifact Debug Symbols
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: love-x86_64-AppImage-debug
|
|
|
|
+ path: love-${{ github.sha }}.AppImage-debug.tar.gz
|
|
|
|
+ - name: Make Runnable
|
|
|
|
+ run: |
|
|
|
|
+ chmod a+x love-${{ github.sha }}.AppImage
|
|
|
|
+ echo "ready to run"
|
|
|
|
+ ls
|
|
|
|
+ - name: Start xvfb and openbox
|
|
|
|
+ run: |
|
|
|
|
+ echo "Starting XVFB on $DISPLAY"
|
|
|
|
+ Xvfb $DISPLAY -screen 0, 360x240x24 &
|
|
|
|
+ echo "XVFBPID=$!" >> $GITHUB_ENV
|
|
|
|
+ # wait for xvfb to startup (3s is the same amount xvfb-run waits by default)
|
|
|
|
+ sleep 3
|
|
|
|
+ openbox &
|
|
|
|
+ echo "OPENBOXPID=$!" >> $GITHUB_ENV
|
|
|
|
+ # linux opengl tests
|
|
|
|
+ - name: Run All Tests (opengl)
|
|
|
|
+ run: |
|
|
|
|
+ ls
|
|
|
|
+ ./love-${{ github.sha }}.AppImage ./testing/main.lua
|
|
|
|
+ - name: Love Test Report (opengl)
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite Linux
|
|
|
|
+ title: test-report-linux-opengl
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output (opengl)
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-linux-opengl.zip testing/output/
|
|
|
|
+ - name: Artifact Test Output (opengl)
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-linux-opengl
|
|
|
|
+ path: test-output-linux-opengl.zip
|
|
|
|
+ # linux opengles tests
|
|
|
|
+ - name: Run Test Suite (opengles)
|
|
|
|
+ run: |
|
|
|
|
+ export LOVE_GRAPHICS_USE_OPENGLES=1
|
|
|
|
+ ./love-${{ github.sha }}.AppImage ./testing/main.lua
|
|
|
|
+ - name: Love Test Report (opengles)
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite Linux
|
|
|
|
+ title: test-report-linux-opengles
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output (opengles)
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-linux-opengles.zip testing/output/
|
|
|
|
+ - name: Artifact Test Output (opengles)
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-linux-opengles
|
|
|
|
+ path: test-output-linux-opengles.zip
|
|
|
|
+ # linux vulkan tests
|
|
|
|
+ - name: Run Test Suite (vulkan)
|
|
|
|
+ run: |
|
|
|
|
+ export LOVE_GRAPHICS_DEBUG=1
|
|
|
|
+ ./love-${{ github.sha }}.AppImage ./testing/main.lua --runAllTests --renderers vulkan
|
|
|
|
+ - name: Love Test Report (vulkan)
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite Linux
|
|
|
|
+ title: test-report-linux-vulkan
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output (vulkan)
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-linux-vulkan.zip testing/output/
|
|
|
|
+ - name: Artifact Test Output (vulkan)
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-linux-vulkan
|
|
|
|
+ path: test-output-linux-vulkan.zip
|
|
|
|
+ - name: Stop xvfb and openbox
|
|
|
|
+ # should always stop xvfb and openbox even if other steps failed
|
|
|
|
+ if: always()
|
|
|
|
+ run: |
|
|
|
|
+ kill $XVFBPID
|
|
|
|
+ kill $OPENBOXPID
|
|
|
|
+ windows-os:
|
|
|
|
+ runs-on: windows-latest
|
|
|
|
+ env:
|
|
|
|
+ ALSOFT_CONF: resources/alsoft.conf
|
|
|
|
+ VK_ICD_FILENAMES: ${{ github.workspace }}\mesa\x64\lvp_icd.x86_64.json
|
|
|
|
+ VULKAN_SDK: C:/VulkanSDK/1.3.231.1
|
|
|
|
+ strategy:
|
|
|
|
+ matrix:
|
|
|
|
+ platform: [Win32, x64, ARM64]
|
|
|
|
+ install: [compat, modern]
|
|
|
|
+ exclude:
|
|
|
|
+ - platform: ARM64
|
|
|
|
+ install: compat
|
|
|
|
+ defaults:
|
|
|
|
+ run:
|
|
|
|
+ shell: cmd
|
|
|
|
+ continue-on-error: ${{ matrix.platform == 'ARM64' }}
|
|
|
|
+ steps:
|
|
|
|
+ - name: Define Variables
|
|
|
|
+ id: vars
|
|
|
|
+ run: |
|
|
|
|
+ rem Compat/Modern switch
|
|
|
|
+ if "${{ matrix.install }}" == "compat" (
|
|
|
|
+ echo moredef=-DLOVE_INSTALL_UCRT=ON>> "%GITHUB_OUTPUT%"
|
|
|
|
+ echo compatname=-compat>> "%GITHUB_OUTPUT%"
|
|
|
|
+ ) else (
|
|
|
|
+ echo moredef=>> "%GITHUB_OUTPUT%"
|
|
|
|
+ echo compatname=>> "%GITHUB_OUTPUT%"
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ rem JIT Modules
|
|
|
|
+ if "${{ matrix.platform }}-${{ matrix.install }}" == "x64-modern" (
|
|
|
|
+ (echo jitmodules=1)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ ) else (
|
|
|
|
+ (echo jitmodules=0)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ )
|
|
|
|
+
|
|
|
|
+ rem Architecture-Specific Switch
|
|
|
|
+ goto ${{ matrix.platform }}
|
|
|
|
+ exit /b 1
|
|
|
|
+
|
|
|
|
+ :Win32
|
|
|
|
+ (echo arch=x86)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ (echo angle=0)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ echo nofiles=warn>> "%GITHUB_OUTPUT%"
|
|
|
|
+ exit /b 0
|
|
|
|
+
|
|
|
|
+ :x64
|
|
|
|
+ (echo arch=x64)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ (echo angle=0)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ echo nofiles=warn>> "%GITHUB_OUTPUT%"
|
|
|
|
+ exit /b 0
|
|
|
|
+
|
|
|
|
+ :ARM64
|
|
|
|
+ (echo arch=arm64)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ (echo angle=1)>> "%GITHUB_OUTPUT%"
|
|
|
|
+ echo nofiles=ignore>> "%GITHUB_OUTPUT%"
|
|
|
|
+ echo moredef=-DLOVE_EXTRA_DLLS=%CD%\angle\libEGL.dll;%CD%\angle\libGLESv2.dll>> "%GITHUB_OUTPUT%"
|
|
|
|
+ exit /b 0
|
|
|
|
+ - name: Download Windows SDK Setup 10.0.20348
|
|
|
|
+ run: curl -Lo winsdksetup.exe https://go.microsoft.com/fwlink/?linkid=2164145
|
|
|
|
+ - name: Install Debugging Tools for Windows
|
|
|
|
+ id: windbg
|
|
|
|
+ run: |
|
|
|
|
+ setlocal enabledelayedexpansion
|
|
|
|
+ start /WAIT %CD%\winsdksetup.exe /features OptionId.WindowsDesktopDebuggers /q /log %CD%\log.txt
|
|
|
|
+ echo ERRORLEVEL=!ERRORLEVEL! >> %GITHUB_OUTPUT%
|
|
|
|
+ - name: Print Debugging Tools Install Log
|
|
|
|
+ if: always()
|
|
|
|
+ run: |
|
|
|
|
+ type log.txt
|
|
|
|
+ exit /b ${{ steps.windbg.outputs.ERRORLEVEL }}
|
|
|
|
+ - name: Setup Python 3.10
|
|
|
|
+ uses: actions/setup-python@v4
|
|
|
|
+ with:
|
|
|
|
+ python-version: "3.10"
|
|
|
|
+ - name: Download source_index.py
|
|
|
|
+ run: curl -Lo source_index.py https://gist.github.com/MikuAuahDark/d9c099f5714e09a765496471c2827a55/raw/df34956052035f3473c5f01861dfb53930d06843/source_index.py
|
|
|
|
+ - name: Clone Megasource
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ with:
|
|
|
|
+ path: megasource
|
|
|
|
+ repository: love2d/megasource
|
|
|
|
+ ref: 12.x
|
|
|
|
+ - id: megasource
|
|
|
|
+ name: Get Megasource Commit SHA
|
|
|
|
+ shell: python
|
|
|
|
+ run: |
|
|
|
|
+ import os
|
|
|
|
+ import subprocess
|
|
|
|
+
|
|
|
|
+ result = subprocess.run("git -C megasource rev-parse HEAD".split(), check=True, capture_output=True, encoding="UTF-8")
|
|
|
|
+ commit = result.stdout.split()[0]
|
|
|
|
+ with open(os.environ["GITHUB_OUTPUT"], "w", encoding="UTF-8") as f: f.write(f"commit={commit}")
|
|
|
|
+ - name: Checkout
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ with:
|
|
|
|
+ path: megasource/libs/love
|
|
|
|
+ - name: Download ANGLE
|
|
|
|
+ uses: robinraju/[email protected]
|
|
|
|
+ if: steps.vars.outputs.angle == '1'
|
|
|
|
+ with:
|
|
|
|
+ repository: MikuAuahDark/angle-winbuild
|
|
|
|
+ tag: cr_5249
|
|
|
|
+ fileName: angle-win-${{ steps.vars.outputs.arch }}.zip
|
|
|
|
+ tarBall: false
|
|
|
|
+ zipBall: false
|
|
|
|
+ out-file-path: angle
|
|
|
|
+ - name: Extract ANGLE
|
|
|
|
+ if: steps.vars.outputs.angle == '1'
|
|
|
|
+ working-directory: angle
|
|
|
|
+ run: 7z x angle-win-${{ steps.vars.outputs.arch }}.zip
|
|
|
|
+ - name: Delete Strawbery Perl
|
|
|
|
+ # https://github.com/actions/runner-images/issues/6627
|
|
|
|
+ # In particular, this is not pretty, but even CMAKE_IGNORE_PREFIX_PATH
|
|
|
|
+ # cannot help in this case. Delete the whole folder!
|
|
|
|
+ run: |
|
|
|
|
+ rmdir /s /q C:\Strawberry
|
|
|
|
+ exit /b 0
|
|
|
|
+ - name: Configure
|
|
|
|
+ env:
|
|
|
|
+ CFLAGS: /Zi
|
|
|
|
+ CXXFLAGS: /Zi
|
|
|
|
+ LDFLAGS: /DEBUG:FULL /OPT:REF /OPT:ICF
|
|
|
|
+ run: cmake -Bbuild -Smegasource -T v142 -A ${{ matrix.platform }} --install-prefix %CD%\install -DCMAKE_PDB_OUTPUT_DIRECTORY=%CD%\pdb ${{ steps.vars.outputs.moredef }}
|
|
|
|
+ - name: Install
|
|
|
|
+ run: cmake --build build --target PACKAGE --config Release -j2
|
|
|
|
+ - name: Copy LuaJIT lua51.pdb
|
|
|
|
+ run: |
|
|
|
|
+ copy /Y build\libs\LuaJIT\src\lua51.pdb pdb\Release\lua51.pdb
|
|
|
|
+ exit /b 0
|
|
|
|
+ - name: Add srcsrv to PATH
|
|
|
|
+ run: |
|
|
|
|
+ echo C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\srcsrv>>%GITHUB_PATH%
|
|
|
|
+ - name: Embed Source Index into PDBs
|
|
|
|
+ run: |
|
|
|
|
+ python source_index.py ^
|
|
|
|
+ --source %CD%\megasource\libs\love https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }} ^
|
|
|
|
+ --source %CD%\megasource https://raw.githubusercontent.com/love2d/megasource/${{ steps.megasource.outputs.commit }} ^
|
|
|
|
+ --source %CD%\build\libs\LuaJIT https://raw.githubusercontent.com/love2d/megasource/${{ steps.megasource.outputs.commit }}/libs/LuaJIT ^
|
|
|
|
+ pdb\Release\*.pdb
|
|
|
|
+ - name: Artifact
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: love-windows-${{ steps.vars.outputs.arch }}${{ steps.vars.outputs.compatname }}
|
|
|
|
+ path: |
|
|
|
|
+ build/*.zip
|
|
|
|
+ build/*.exe
|
|
|
|
+ if-no-files-found: ${{ steps.vars.outputs.nofiles }}
|
|
|
|
+ - name: Artifact JIT Modules
|
|
|
|
+ if: steps.vars.outputs.jitmodules == '1'
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: love-windows-jitmodules
|
|
|
|
+ path: build/libs/LuaJIT/src/jit/*.lua
|
|
|
|
+ - name: Artifact PDB
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: love-windows-${{ steps.vars.outputs.arch }}${{ steps.vars.outputs.compatname }}-dbg
|
|
|
|
+ path: pdb/Release/*.pdb
|
|
|
|
+ - name: Install Mesa
|
|
|
|
+ run: |
|
|
|
|
+ curl -L --output mesa.7z --url https://github.com/pal1000/mesa-dist-win/releases/download/23.2.1/mesa3d-23.2.1-release-msvc.7z
|
|
|
|
+ 7z x mesa.7z -o*
|
|
|
|
+ powershell.exe mesa\systemwidedeploy.cmd 1
|
|
|
|
+ - name: Build Test Exe
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: cmake --build build --config Release --target install
|
|
|
|
+ - name: Run Tests (opengl)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ echo 'check dir'
|
|
|
|
+ dir
|
|
|
|
+ powershell.exe ./install/lovec.exe ./testing/main.lua
|
|
|
|
+ # windows opengl test
|
|
|
|
+ - name: Love Test Report (opengl)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite Windows (opengl)
|
|
|
|
+ title: test-report-windows-${{ steps.vars.outputs.arch }}${{ steps.vars.outputs.compatname }}-opengl
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output (opengl)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-windows-opengl.zip testing/output/
|
|
|
|
+ - name: Artifact Test Output (opengl)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-windows-opengl
|
|
|
|
+ path: test-output-windows-opengl.zip
|
|
|
|
+ # windows opengles test
|
|
|
|
+ - name: Run Tests (opengles)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ $ENV:LOVE_GRAPHICS_USE_OPENGLES=1
|
|
|
|
+ powershell.exe ./install/lovec.exe ./testing/main.lua
|
|
|
|
+ - name: Love Test Report (opengles)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite Windows (opengles)
|
|
|
|
+ title: test-report-windows-${{ steps.vars.outputs.arch }}${{ steps.vars.outputs.compatname }}-opengles
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output (opengles)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-windows-opengles.zip testing/output/
|
|
|
|
+ - name: Artifact Test Output (opengles)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-windows-opengles
|
|
|
|
+ path: test-output-windows-opengles.zip
|
|
|
|
+ - name: Install Vulkan
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ curl -L --show-error --output VulkanSDK.exe https://sdk.lunarg.com/sdk/download/1.3.231.1/windows/VulkanSDK-1.3.231.1-Installer.exe
|
|
|
|
+ ./VulkanSDK.exe --root C:/VulkanSDK/1.3.231.1 --accept-licenses --default-answer --confirm-command install com.lunarg.vulkan.core com.lunarg.vulkan.vma
|
|
|
|
+ curl -L --show-error --output vulkan-runtime.zip https://sdk.lunarg.com/sdk/download/1.3.231.1/windows/vulkan-runtime-components.zip
|
|
|
|
+ 7z e vulkan-runtime.zip -o"C:/VulkanSDK/1.3.231.1/runtime/x64" */x64
|
|
|
|
+ copy "C:/VulkanSDK/1.3.231.1/runtime/x64/vulkan-1.dll" "mesa/x64"
|
|
|
|
+ copy "C:/VulkanSDK/1.3.231.1/runtime/x64/vulkan-1.dll" "C:/Windows/System32"
|
|
|
|
+ copy "C:/VulkanSDK/1.3.231.1/runtime/x64/vulkan-1.dll" "love-12.0-win64/love-12.0-win64"
|
|
|
|
+ reg add HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\Drivers /v "${{ github.workspace }}\mesa\x64\lvp_icd.x86_64.json" /t REG_DWORD /d 0
|
|
|
|
+ powershell.exe C:/VulkanSDK/1.3.231.1/runtime/x64/vulkaninfo.exe --summary
|
|
|
|
+ # windows vulkan tests
|
|
|
|
+ - name: Run Tests (vulkan)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ $ENV:LOVE_GRAPHICS_DEBUG=1
|
|
|
|
+ powershell.exe ./install/lovec.exe ./testing/main.lua --runAllTests --renderers vulkan
|
|
|
|
+ - name: Love Test Report (vulkan)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite Windows (vulkan)
|
|
|
|
+ title: test-report-windows-${{ steps.vars.outputs.arch }}${{ steps.vars.outputs.compatname }}-vulkan
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output (vulkan)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-windows-vulkan.zip testing/output
|
|
|
|
+ - name: Artifact Test Output (vulkan)
|
|
|
|
+ if: steps.vars.outputs.arch != 'ARM64'
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-windows-vulkan
|
|
|
|
+ path: test-output-windows-vulkan.zip
|
|
|
|
+ macOS:
|
|
|
|
+ runs-on: macos-latest
|
|
|
|
+ steps:
|
|
|
|
+ - name: Checkout
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ - name: Clone Dependencies
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ with:
|
|
|
|
+ path: apple-dependencies
|
|
|
|
+ repository: love2d/love-apple-dependencies
|
|
|
|
+ ref: 12.x
|
|
|
|
+ - name: Move Dependencies
|
|
|
|
+ run:
|
|
|
|
+ mv apple-dependencies/macOS/Frameworks platform/xcode/macosx
|
|
|
|
+ - name: Build
|
|
|
|
+ run:
|
|
|
|
+ xcodebuild clean archive -project platform/xcode/love.xcodeproj -scheme love-macosx -configuration Release -archivePath love-macos.xcarchive
|
|
|
|
+ - name: Export Archive
|
|
|
|
+ run:
|
|
|
|
+ xcodebuild -exportArchive -archivePath love-macos.xcarchive -exportPath love-macos -exportOptionsPlist platform/xcode/macosx/macos-copy-app.plist
|
|
|
|
+ - name: Zip Archive
|
|
|
|
+ run:
|
|
|
|
+ ditto -c -k --sequesterRsrc --keepParent love-macos/love.app love-macos.zip
|
|
|
|
+ - name: Artifact
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: love-macos
|
|
|
|
+ path: love-macos.zip
|
|
|
|
+ # macos opengl tests
|
|
|
|
+ - name: Run Tests
|
|
|
|
+ run: love-macos/love.app/Contents/MacOS/love testing/main.lua
|
|
|
|
+ - name: Love Test Report
|
|
|
|
+ uses: ellraiser/love-test-report@main
|
|
|
|
+ with:
|
|
|
|
+ name: Love Testsuite MacOS
|
|
|
|
+ title: test-report-macos
|
|
|
|
+ path: testing/output/lovetest_runAllTests.md
|
|
|
|
+ - name: Zip Test Output
|
|
|
|
+ run: |
|
|
|
|
+ 7z a -tzip test-output-macos-opengl.zip testing/output/
|
|
|
|
+ - name: Artifact Test Output
|
|
|
|
+ uses: actions/upload-artifact@v3
|
|
|
|
+ with:
|
|
|
|
+ name: test-output-macos-opengl
|
|
|
|
+ path: test-output-macos-opengl.zip
|
|
|
|
+ iOS-Simulator:
|
|
|
|
+ runs-on: macos-latest
|
|
|
|
+ steps:
|
|
|
|
+ - name: Checkout
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ - name: Clone Dependencies
|
|
|
|
+ uses: actions/checkout@v3
|
|
|
|
+ with:
|
|
|
|
+ path: apple-dependencies
|
|
|
|
+ repository: love2d/love-apple-dependencies
|
|
|
|
+ ref: 12.x
|
|
|
|
+ - name: Move Dependencies
|
|
|
|
+ run: |
|
|
|
|
+ mv apple-dependencies/iOS/libraries platform/xcode/ios
|
|
|
|
+ - name: Build
|
|
|
|
+ run:
|
|
|
|
+ xcodebuild -project platform/xcode/love.xcodeproj -scheme love-ios -configuration Release -destination 'platform=iOS Simulator,name=iPhone 11'
|