puerts.gen_iterator测试 #175
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: unity unittest | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - unity/upms/** | |
| - unity/test/** | |
| - unity/native/** | |
| - unity/cli/** | |
| - unreal/Puerts/Source/JsEnv/Private/V8InspectorImpl.cpp | |
| - unreal/Puerts/Source/JsEnv/Private/V8InspectorImpl.h | |
| - unreal/Puerts/Source/JsEnv/Private/WebSocketImpl.cpp | |
| - unreal/Puerts/Source/JsEnv/Private/PromiseRejectCallback.hpp | |
| - .github/workflows/unity_unittest.yml | |
| - .github/workflows/run_android_test.sh | |
| - .github/workflows/composites/** | |
| pull_request: | |
| paths: | |
| - unity/upms/** | |
| - unity/test/** | |
| - unity/native/** | |
| - unity/cli/** | |
| - unreal/Puerts/Source/JsEnv/Private/V8InspectorImpl.cpp | |
| - unreal/Puerts/Source/JsEnv/Private/V8InspectorImpl.h | |
| - unreal/Puerts/Source/JsEnv/Private/WebSocketImpl.cpp | |
| - unreal/Puerts/Source/JsEnv/Private/PromiseRejectCallback.hpp | |
| - .github/workflows/unity_unittest.yml | |
| - .github/workflows/run_android_test.sh | |
| - .github/workflows/composites/** | |
| # branches-ignore: | |
| # - 'unity-3.0.0' | |
| concurrency: | |
| group: unity-ci-global | |
| cancel-in-progress: false | |
| jobs: | |
| # unittest-win-unity: | |
| # runs-on: windows-2022 | |
| # | |
| # steps: | |
| # - uses: actions/checkout@v3 | |
| # - name: Setup Unity | |
| # uses: ./.github/workflows/composites/unity-setup/ | |
| # with: | |
| # os: 'win' | |
| # version: '2022.3.59f1' | |
| # cachekey: 'unity2022x64' | |
| # install_path: C:/UNITY | |
| # unity_modules: windows-il2cpp | |
| # UNITY_USERNAME: ${{ secrets.UNITY_USERNAME }} | |
| # UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
| # UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} | |
| # - name: UnitTest | |
| # run: | | |
| # cd unity | |
| # npm i | |
| # cd test/unity | |
| # node ../../cli unity-test --unity C:/UNITY/2022.3.59f1/Editor/Unity.exe | |
| # - name: TestResult | |
| ## if: always() | |
| # shell: bash | |
| # run: | | |
| # cd unity/test/unity | |
| # echo "testresult in v2(reflection)" | |
| # cat log2.txt | grep "Failed\|Passed" | |
| # echo "testresult in v2" | |
| # cat log3.txt | grep "Failed\|Passed" | |
| # unittest-osx-unity: | |
| # runs-on: macos-latest | |
| # steps: | |
| # - uses: actions/checkout@v3 | |
| # - uses: RageAgainstThePixel/unity-setup@v1 | |
| # with: | |
| # unity-version: 2022.3.59f1 | |
| # build-targets: StandaloneOSX | |
| # modules: mac-il2cpp | |
| # #version-file: 'unity/test/unity/ProjectSettings/ProjectVersion.txt' | |
| # - uses: RageAgainstThePixel/activate-unity-license@v1 | |
| # with: | |
| # license: 'Personal' | |
| # username: ${{ secrets.UNITY_USERNAME }} | |
| # password: ${{ secrets.UNITY_PASSWORD }} | |
| # #serial: ${{ secrets.UNITY_SERIAL }} | |
| # - name: UnitTest | |
| # run: | | |
| # cd unity | |
| # npm i | |
| # cd test/unity | |
| # node ../../cli unity-test --unity ${{ env.UNITY_EDITOR_PATH }} | |
| # - name: TestResult | |
| ## if: always() | |
| # shell: bash | |
| # run: | | |
| # cd unity/test/unity | |
| # log_files=( | |
| # "log_reflection.txt" | |
| # "log_qjs_reflection.txt" | |
| # "log_nodejs_reflection.txt" | |
| # "log_minimum_reflection.txt" | |
| # "log_qjs_minimum_reflection.txt" | |
| # "log_nodejs_minimum_reflection.txt" | |
| # "log_full_wrapper.txt" | |
| # "log_qjs_full_wrapper.txt" | |
| # "log_nodejs_full_wrapper.txt" | |
| # ) | |
| # for log_file in "${log_files[@]}"; do | |
| # echo "Processing $log_file" | |
| # grep "ENV_BACKEND" "$log_file" || true | |
| # passed_count=$(grep -c "Passed" "$log_file" || true) | |
| # echo "Passed: $passed_count" | |
| # failed_count=$(grep -c "Failed" "$log_file" || true) | |
| # echo "Failed: $failed_count" | |
| # grep "Failed" "$log_file" || true | |
| # echo | |
| # done | |
| unittest-run-testcase-and-build-android: | |
| runs-on: macos-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.14' | |
| - name: Build Android Plugin # 得先构建Android插件,如果先运行UT会导致meta被Editor删除 | |
| shell: bash | |
| run: | | |
| cd unity | |
| npm i | |
| cd native/puerts | |
| node ../../cli make --platform android --arch x64 --config Debug | |
| cd ../papi-v8 | |
| node ../../cli make --platform android --arch x64 --config Debug | |
| cd ../papi-quickjs | |
| node ../../cli make --platform android --arch x64 --config Debug | |
| cd ../papi-lua | |
| node ../../cli make --platform android --arch x64 --config Debug | |
| cd ../wsppaddon | |
| node ../../cli make --platform android --arch x64 --websocket 2 --config Debug | |
| cd ../papi-python | |
| wget -O python-3.14.0-x86_64-linux-android.tar.gz -q https://www.python.org/ftp/python/3.14.0/python-3.14.0-x86_64-linux-android.tar.gz | |
| mkdir -p python-3.14.0-x86_64-linux-android | |
| tar -xzf python-3.14.0-x86_64-linux-android.tar.gz -C python-3.14.0-x86_64-linux-android | |
| node ../../cli make --platform android --arch x64 --config Debug | |
| cp python-3.14.0-x86_64-linux-android/prefix/lib/lib*.so ../../upms/python/Plugins/Android/libs/x86_64 | |
| mkdir -p python/lib | |
| cp -r python-3.14.0-x86_64-linux-android/prefix/lib/python3.14 python/lib/ | |
| zip -r -q python.zip python/ | |
| mkdir -p ../../test/unity/Assets/StreamingAssets/ | |
| cp python.zip ../../test/unity/Assets/StreamingAssets/ | |
| - name: Setup Unity | |
| uses: RageAgainstThePixel/unity-setup@v1 | |
| with: | |
| unity-version: 2022.3.59f1 | |
| build-targets: StandaloneOSX, Android | |
| modules: android-il2cpp, mac-il2cpp | |
| #version-file: 'unity/test/unity/ProjectSettings/ProjectVersion.txt' | |
| - uses: RageAgainstThePixel/activate-unity-license@v1 | |
| with: | |
| license: 'Personal' | |
| username: ${{ secrets.UNITY_USERNAME }} | |
| password: ${{ secrets.UNITY_PASSWORD }} | |
| #serial: ${{ secrets.UNITY_SERIAL }} | |
| - name: UnitTest | |
| run: | | |
| cd unity | |
| npm i | |
| cd test/unity | |
| node ../../cli unity-test --unity ${{ env.UNITY_EDITOR_PATH }} | |
| - name: TestResult | |
| # if: always() | |
| shell: bash | |
| run: | | |
| cd unity/test/unity | |
| log_files=( | |
| "log_reflection.txt" | |
| "log_qjs_reflection.txt" | |
| "log_nodejs_reflection.txt" | |
| "log_minimum_reflection.txt" | |
| "log_qjs_minimum_reflection.txt" | |
| "log_nodejs_minimum_reflection.txt" | |
| "log_full_wrapper.txt" | |
| "log_qjs_full_wrapper.txt" | |
| "log_nodejs_full_wrapper.txt" | |
| ) | |
| for log_file in "${log_files[@]}"; do | |
| echo "Processing $log_file" | |
| grep "ENV_BACKEND" "$log_file" || true | |
| passed_count=$(grep -c "Passed" "$log_file" || true) | |
| echo "Passed: $passed_count" | |
| failed_count=$(grep -c "Failed" "$log_file" || true) | |
| echo "Failed: $failed_count" | |
| grep "Failed" "$log_file" || true | |
| echo | |
| done | |
| - name: Build Android APK | |
| shell: bash | |
| run: | | |
| cd unity/test/unity | |
| echo "-define:FORCE_TEST_PYTHON" > Assets/csc.rsp | |
| ${{ env.UNITY_EDITOR_PATH }} -batchmode -nographics -quit -projectPath . -logFile log1.txt -executeMethod TestBuilder.GenMinimumWrappersAndBridge | |
| ${{ env.UNITY_EDITOR_PATH }} -batchmode -nographics -quit -projectPath . -logFile log2.txt -executeMethod TestBuilder.BuildAndroid | |
| - name: Upload apk | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: puerts_test | |
| path: unity/test/unity/build/puerts_test.apk | |
| unittest-run-android-in-linux: | |
| runs-on: ubuntu-latest | |
| needs: [unittest-run-testcase-and-build-android] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: puerts_test | |
| - name: Enable KVM group perms | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: 17 | |
| distribution: 'adopt' | |
| - name: Setup Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Start emulator and run commands | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 24 | |
| target: default | |
| arch: x86_64 | |
| profile: Nexus 6 | |
| emulator-options: -no-window -no-boot-anim -no-audio -no-snapshot-load | |
| disable-linux-hw-accel: true | |
| script: bash .github/workflows/run_android_test.sh | |
| - name: Upload logs | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: logcat | |
| path: logcat.txt | |
| # unittest-linux-unity: | |
| # runs-on: ubuntu-latest | |
| # steps: | |
| # - name: Install libc++-dev | |
| # shell: bash | |
| # run: | | |
| # sudo apt-get install clang | |
| # sudo apt-get install libc++-dev | |
| # sudo apt-get install libc++abi-dev | |
| # - uses: actions/checkout@v3 | |
| # - name: Setup Unity | |
| # uses: RageAgainstThePixel/unity-setup@v1 | |
| # with: | |
| # unity-version: 2022.3.59f1 | |
| # build-targets: StandaloneLinux64, Android | |
| # modules: android-il2cpp, linux-il2cpp | |
| # #version-file: 'unity/test/unity/ProjectSettings/ProjectVersion.txt' | |
| # - uses: RageAgainstThePixel/activate-unity-license@v1 | |
| # with: | |
| # license: 'Personal' | |
| # username: ${{ secrets.UNITY_USERNAME }} | |
| # password: ${{ secrets.UNITY_PASSWORD }} | |
| # #serial: ${{ secrets.UNITY_SERIAL }} | |
| # - name: Build Android Plugin # 得先构建Android插件,如果先运行UT会导致meta被Editor删除 | |
| # shell: bash | |
| # run: | | |
| # cd unity | |
| # npm i | |
| # cd native | |
| # cd puerts | |
| # node ../../cli make --platform android --arch x64 --config Debug | |
| # cd ../papi-v8 | |
| # node ../../cli make --platform android --arch x64 --config Debug | |
| # cd ../papi-quickjs | |
| # node ../../cli make --platform android --arch x64 --config Debug | |
| # cd ../papi-lua | |
| # node ../../cli make --platform android --arch x64 --config Debug | |
| # cd ../wsppaddon | |
| # node ../../cli make --platform android --arch x64 --websocket 2 --config Debug | |
| # - name: UnitTest | |
| # run: | | |
| # cd unity | |
| # npm i | |
| # cd test/unity | |
| # node ../../cli unity-test --unity ${{ env.UNITY_EDITOR_PATH }} | |
| # - name: TestResult | |
| ## if: always() | |
| # shell: bash | |
| # run: | | |
| # cd unity/test/unity | |
| # log_files=( | |
| # "log_reflection.txt" | |
| # "log_qjs_reflection.txt" | |
| # "log_nodejs_reflection.txt" | |
| # "log_minimum_reflection.txt" | |
| # "log_qjs_minimum_reflection.txt" | |
| # "log_nodejs_minimum_reflection.txt" | |
| # "log_full_wrapper.txt" | |
| # "log_qjs_full_wrapper.txt" | |
| # "log_nodejs_full_wrapper.txt" | |
| # ) | |
| # for log_file in "${log_files[@]}"; do | |
| # echo "Processing $log_file" | |
| # grep "ENV_BACKEND" "$log_file" || true | |
| # passed_count=$(grep -c "Passed" "$log_file" || true) | |
| # echo "Passed: $passed_count" | |
| # failed_count=$(grep -c "Failed" "$log_file" || true) | |
| # echo "Failed: $failed_count" | |
| # grep "Failed" "$log_file" || true | |
| # echo | |
| # done | |
| # - name: Build Android APK | |
| # shell: bash | |
| # run: | | |
| # cd unity/test/unity | |
| # ${{ env.UNITY_EDITOR_PATH }} -batchmode -nographics -quit -projectPath . -logFile log1.txt -executeMethod TestBuilder.GenMinimumWrappersAndBridge | |
| # ${{ env.UNITY_EDITOR_PATH }} -batchmode -nographics -quit -projectPath . -logFile log2.txt -executeMethod TestBuilder.BuildAndroid | |
| # - name: Enable KVM group perms | |
| # run: | | |
| # echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| # sudo udevadm control --reload-rules | |
| # sudo udevadm trigger --name-match=kvm | |
| # - name: Set up JDK 17 | |
| # uses: actions/setup-java@v4 | |
| # with: | |
| # java-version: 17 | |
| # distribution: 'adopt' | |
| # - name: Setup Android SDK | |
| # uses: android-actions/setup-android@v3 | |
| # - name: Start emulator and run commands | |
| # uses: reactivecircus/android-emulator-runner@v2 | |
| # with: | |
| # api-level: 22 | |
| # target: default | |
| # arch: x86_64 | |
| # profile: Galaxy Nexus | |
| # emulator-options: -no-window -no-boot-anim -no-audio -no-snapshot-load | |
| # disable-linux-hw-accel: true | |
| # script: bash .github/workflows/run_android_test.sh | |
| # - name: Upload logs | |
| # if: always() | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: logcat | |
| # path: logcat.txt | |
| unittest-win-dotnet: | |
| runs-on: windows-2022 | |
| steps: | |
| - uses: actions/setup-dotnet@v3 | |
| with: | |
| dotnet-version: '6.x.x' | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.14' | |
| - uses: actions/checkout@v3 | |
| - name: UnitTest-v8 | |
| run: | | |
| cd unity | |
| npm i | |
| cd test/dotnet | |
| node ../../cli dotnet-test v8_9.4 | |
| - name: UnitTest-nodejs | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -sn | |
| - name: UnitTest-quickjs | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -sq | |
| - name: UnitTest-v8-ts | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -ts | |
| unittest-osx-dotnet: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/setup-dotnet@v3 | |
| with: | |
| dotnet-version: '6.x.x' | |
| - uses: actions/checkout@v3 | |
| - name: UnitTest-v8 | |
| run: | | |
| cd unity | |
| npm i | |
| cd test/dotnet | |
| node ../../cli dotnet-test | |
| - name: UnitTest-nodejs | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -sn | |
| - name: UnitTest-quickjs | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -sq | |
| - name: UnitTest-v8-ts | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -ts | |
| unittest-linux-dotnet: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/setup-dotnet@v3 | |
| with: | |
| dotnet-version: '6.x.x' | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.14' | |
| - uses: actions/checkout@v3 | |
| - name: Install LibC++ | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install clang | |
| sudo apt-get install build-essential | |
| sudo apt-get install libc++-dev | |
| sudo apt-get install libc++abi-dev | |
| - name: UnitTest-v8 | |
| run: | | |
| cd unity | |
| npm i | |
| cd test/dotnet | |
| node ../../cli dotnet-test | |
| - name: UnitTest-nodejs | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -sn | |
| - name: UnitTest-quickjs | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -sq | |
| - name: UnitTest-v8-ts | |
| run: | | |
| cd unity/test/dotnet | |
| node ../../cli dotnet-test -ts |