Skip to content

Fix event returned IStreamChannel not triggering events due to not be… #375

Fix event returned IStreamChannel not triggering events due to not be…

Fix event returned IStreamChannel not triggering events due to not be… #375

Workflow file for this run

name: CI - Run Tests + Build Sample App
on:
pull_request:
branches: [ main, develop ]
push:
branches: [ main, develop ]
workflow_dispatch:
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
jobs:
testRunner:
strategy:
fail-fast: false
matrix:
os: [macos-latest]
unity_version: [2021.3.0, 2020.3.0]
dotnet_version: [NET_4_x, STANDARD_2_x]
compiler: [mono, il2cpp]
target_platform: [standalone, mobile]
name: Run tests + Build Sample APp
runs-on: ${{ matrix.os }}
timeout-minutes: 600
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Print chipset
shell: bash
run: uname -m
continue-on-error: true
- name: Set up Node.js 16
uses: actions/setup-node@v1
with:
node-version: 16
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Print python version
shell: bash
run: python --version
continue-on-error: true
- name: Install node package, `unity-license-activate`
run: npm install --global https://github.com/sierpinskid/unity-license-activate
- name: Install node package, `unity-verify-code`
run: npm install --global https://github.com/sierpinskid/unity-verify-code
- name: Download Unity & Modules
if: ${{ matrix.os }} == 'macos-latest'
shell: bash
run: |
if [[ ${{ matrix.unity_version }} == '2021.3.0' ]]
then
curl -L -o ~/Unity.pkg https://download.unity3d.com/download_unity/6eacc8284459/MacEditorInstaller/Unity.pkg
if [[ ${{ matrix.compiler }} == 'il2cpp' ]]
then
curl -L -o ~/UnityIL2CPPModule.pkg https://download.unity3d.com/download_unity/6eacc8284459/MacEditorTargetInstaller/UnitySetup-Mac-IL2CPP-Support-for-Editor-2021.3.0f1.pkg
fi
if [[ ${{ matrix.target_platform }} == 'mobile' ]]
then
curl -L -o ~/UnityIosModule.pkg https://download.unity3d.com/download_unity/6eacc8284459/MacEditorTargetInstaller/UnitySetup-iOS-Support-for-Editor-2021.3.0f1.pkg
fi
elif [[ ${{ matrix.unity_version }} == '2020.3.0' ]]
then
curl -L -o ~/Unity.pkg https://download.unity3d.com/download_unity/1fb1bf06830e/MacEditorInstaller/Unity.pkg
if [[ ${{ matrix.compiler }} == 'il2cpp' ]]
then
curl -L -o ~/UnityIL2CPPModule.pkg https://download.unity3d.com/download_unity/1fb1bf06830e/MacEditorTargetInstaller/UnitySetup-Mac-IL2CPP-Support-for-Editor-2020.3.30f1.pkg
fi
if [[ ${{ matrix.target_platform }} == 'mobile' ]]
then
curl -L -o ~/UnityIosModule.pkg https://download.unity3d.com/download_unity/1fb1bf06830e/MacEditorTargetInstaller/UnitySetup-iOS-Support-for-Editor-2020.3.30f1.pkg
fi
fi
- name: Install Unity
uses: nick-fields/retry@v2
with:
timeout_minutes: 15
max_attempts: 3
shell: bash
command: sudo installer -package ~/Unity.pkg -target /
- name: Instal IL2CPP Module
if: matrix.compiler == 'il2cpp'
uses: nick-fields/retry@v2
with:
timeout_minutes: 5
max_attempts: 3
shell: bash
command: sudo installer -package ~/UnityIL2CPPModule.pkg -target /
- name: Instal Mobile Module
if: matrix.target_platform == 'mobile'
uses: nick-fields/retry@v2
with:
timeout_minutes: 5
max_attempts: 3
shell: bash
command: sudo installer -package ~/UnityIosModule.pkg -target /
- name: Create Test Results dir
shell: bash
run: mkdir test_results
- name: Generate .ALF license file
shell: bash
run: sudo /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -createManualActivationFile -quit
continue-on-error: true #Unity return exit code 1 even if successfully creating license file
- name: List dir
shell: bash
run: |
ls
grep ".alf$"
ULF_FILE_PATH=$(ls | grep ".alf$")
echo $ULF_FILE_PATH
continue-on-error: true
- name: Ensure code file exists
shell: bash
run: touch ./code.txt
continue-on-error: true
- name: Activate .ALF License - Get .ULF file
id: generate_ulf_license_attempt_1
shell: bash
run: sudo unity-license-activate "${{ secrets.UNITY_ACCOUNT_USER }}" "${{ secrets.UNITY_ACCOUNT_PASS }}" "$(ls | grep ".alf$")" --password "${{ secrets.EMAIL_PASS }}" --host "imap.gmail.com"
timeout-minutes: 25
continue-on-error: true
- name: Activate .ALF License - Get .ULF file - Attempt 2
if: steps.generate_ulf_license_attempt_1.outcome == 'failure'
id: generate_ulf_license_attempt_2
shell: bash
run: sudo unity-license-activate "${{ secrets.UNITY_ACCOUNT_USER }}" "${{ secrets.UNITY_ACCOUNT_PASS }}" "$(ls | grep ".alf$")" --password "${{ secrets.EMAIL_PASS }}" --host "imap.gmail.com"
timeout-minutes: 25
continue-on-error: true
- name: Activate .ALF License - Get .ULF file - Attempt 3
if: steps.generate_ulf_license_attempt_2.outcome == 'failure'
id: generate_ulf_license_attempt_3
shell: bash
run: sudo unity-license-activate "${{ secrets.UNITY_ACCOUNT_USER }}" "${{ secrets.UNITY_ACCOUNT_PASS }}" "$(ls | grep ".alf$")" --password "${{ secrets.EMAIL_PASS }}" --host "imap.gmail.com"
timeout-minutes: 25
continue-on-error: true
- name: 🩺 Upload error screenshot
if: steps.generate_ulf_license_attempt_1.outcome == 'failure'
uses: actions/upload-artifact@v1
continue-on-error: true
with:
name: screenshot_error_1
path: error.png
- name: 🩺 Upload error screenshot 2
if: steps.generate_ulf_license_attempt_2.outcome == 'failure'
uses: actions/upload-artifact@v1
continue-on-error: true
with:
name: screenshot_error_2
path: error.png
- name: 🩺 Upload error screenshot 3
if: steps.generate_ulf_license_attempt_3.outcome == 'failure'
uses: actions/upload-artifact@v1
continue-on-error: true
with:
name: screenshot_error_3
path: error.png
- name: Activate Unity with .ULF license file
shell: bash
run: sudo /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -manualLicenseFile "$(ls | grep ".ulf$")" -quit
continue-on-error: true #Unity return exit code 1 even if successfully activating with license file
- name: LS Unity Logs dir
shell: bash
run: ls ~/Library/Logs/Unity/
continue-on-error: true
- name: Print Audit Unity Logs
shell: bash
run: cat ~/Library/Logs/Unity/Unity.Entitlements.Audit.log
continue-on-error: true
- name: Print Client Unity Logs
shell: bash
run: cat ~/Library/Logs/Unity/Unity.Licensing.Client.log
continue-on-error: true
- name: Print Unity Editor Logs
shell: bash
run: cat ~/Library/Logs/Unity/Editor.log
continue-on-error: true
- name: Enable Stream Tests in Unity
shell: bash
run: sudo /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -projectPath "$GITHUB_WORKSPACE" -executeMethod StreamChat.EditorTools.StreamEditorTools.EnableStreamTestsEnabledCompilerFlag -quit
#skip -quit due to not working with async tests
- name: Run Unity Tests
id: run_unity_tests
shell: bash
run: sudo /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -projectPath "$GITHUB_WORKSPACE" -runTests -testResults ~/test_results/results.xml -streamBase64TestDataSet ${{ secrets.STREAM_AUTH_TEST_DATA_BASE64 }}
continue-on-error: true
#due to skipped -quit
- name: Force Close Unity
shell: bash
run: sudo pkill -x Unity
continue-on-error: true
- name: Print Test Results
if: always()
shell: bash
run: cat ~/test_results/results.xml
- name: Print Unity Logs
shell: bash
run: cat ~/Library/Logs/Unity/Editor.log
continue-on-error: true
- name: Generate HTML test report
uses: rempelj/nunit-html-action@v1.0.1
if: always()
with:
inputXmlPath: ~/test_results/results.xml
outputHtmlPath: ~/test_results/results.html
- name: Upload tests results XML Artifact
uses: actions/upload-artifact@v3
if: always()
with:
name: ${{ matrix.os }}_${{ matrix.unity_version }}_${{ matrix.compiler }}_${{ matrix.dotnet_version }}_${{ matrix.target_platform }}_test_results.xml
path: ~/test_results/results.xml
- name: Upload tests results Html Artifact
uses: actions/upload-artifact@v3
if: always()
with:
name: ${{ matrix.os }}_${{ matrix.unity_version }}_${{ matrix.compiler }}_${{ matrix.dotnet_version }}_${{ matrix.target_platform }}_test_results.html
path: ~/test_results/results.html
- name: Validate All Tests Passed
if: steps.run_unity_tests.outcome == 'failure'
run: exit 1
- name: Generate GH Summary Comment
uses: sierpinskid/nunit-github-comment@v1
if: github.event_name == 'pull_request'
with:
inputXmlPath: ~/test_results/results.xml
outputFilePath: ~/test_results/gh_comment.txt
- name: Set GH Comment as variable
if: github.event_name == 'pull_request'
id: generate_gh_comment
run: echo "::set-output name=gh_comment::$(cat ~/test_results/gh_comment.txt)"
- name: Build Sample App
shell: bash
run: sudo /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -nographics -projectPath "$GITHUB_WORKSPACE" -executeMethod "StreamChat.EditorTools.StreamEditorTools.BuildSampleApp" -streamBase64TestDataSet ${{ secrets.STREAM_AUTH_TEST_DATA_BASE64 }} -apiCompatibility ${{ matrix.dotnet_version }} -scriptingBackend ${{ matrix.compiler }} -buildTargetPlatform ${{ matrix.target_platform }} -buildTargetPath "~/SampleAppBuild/App" -quit
- name: LS
shell: bash
run: |
ls
echo '----'
ls ~
echo '----'
ls "~/SampleAppBuild/"
echo '----'
ls "~/SampleAppBuild/App/"
echo '----'
continue-on-error: true
- name: Upload Sample App
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}_${{ matrix.unity_version }}_${{ matrix.compiler }}_${{ matrix.dotnet_version }}_${{ matrix.target_platform }}_sample_app
path: ~/SampleAppBuild/App/