Skip to content

Set dialogue program to yarn project's program on init, if present #343

Set dialogue program to yarn project's program on init, if present

Set dialogue program to yarn project's program on init, if present #343

Workflow file for this run

name: Run Tests 🧪
env:
ACTIONS_RUNNER_DEBUG: true
ACTIONS_STEP_DEBUG: true
on:
push:
branches:
- main
- development/v3
- "feature/**"
paths:
- "Editor/**"
- "Runtime/**"
- "Samples~/**"
- "Tests/**"
workflow_dispatch:
jobs:
buildAndTestForSomePlatforms:
concurrency:
group: ${{ github.workflow }}-${{ matrix.unityVersion }}-${{ matrix.unityLocalisation }}-${{ matrix.uniTask }}
cancel-in-progress: true # Cancel other jobs if another one arrives
name: ${{ matrix.unityVersion }} (${{ matrix.targetPlatform }}, ${{ matrix.unityLocalisation && 'with unity loc' || 'no unity loc' }}, ${{ matrix.uniTask && 'with unitask' || 'no unitask' }})
runs-on: [self-hosted, linux]
strategy:
fail-fast: false
# max-parallel: 1 # Only run one at a time, to prevent license contention
matrix:
projectPath:
- YarnSpinner
unityVersion:
- 2022.3.45f1
- 2023.2.12f1
- 6000.0.24f1
unityLocalisation:
- true
- false
uniTask:
- true
- false
targetPlatform:
# - StandaloneOSX # Build a macOS standalone (Intel 64-bit).
# - StandaloneWindows64 # Build a Windows 64-bit standalone.
- StandaloneLinux64 # Build a Linux 64-bit standalone.
# - iOS # Build an iOS player.
# - Android # Build an Android player.
# - WebGL # WebGL.
steps:
- name: Create empty Unity project
run: |
mkdir -p ${{ matrix.projectPath }}/Assets
mkdir -p ${{ matrix.projectPath }}/ProjectSettings
mkdir -p ${{ matrix.projectPath }}/Packages
mkdir -p output
# Add the Unity Input System package, and configure the new project to use
# both the Input System and the legacy Input Manager.
- name: Add Input System package
run: |
cat <<EOF > ${{ matrix.projectPath }}/ProjectSettings/ProjectSettings.asset
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!129 &1
PlayerSettings:
activeInputHandler: 2
EOF
cat <<EOF > ${{ matrix.projectPath }}/Packages/manifest.json
{
"dependencies": {
"com.unity.inputsystem": "1.11.2"
}
}
EOF
# Select correct TMP Essentials package
if [[ ${{matrix.unityVersion}} == "2022"* ]]; then
TMP_VERSION="ugui-1.0.0"
else
TMP_VERSION="ugui-2.0.0"
fi
echo "Installing TMP Essentials for $TMP_VERSION"
# Add the correct version of the TMP Essentials package to package manifest
MANIFEST_PATH=${{ matrix.projectPath }}/Packages/manifest.json
jq ".dependencies += {\"dev.yarnspinner.tmp-essentials\": \"https://github.com/desplesda/dev.yarnspinner.tmp-essentials.git#$TMP_VERSION\"}" "$MANIFEST_PATH" > manifest.json
mv manifest.json "$MANIFEST_PATH"
- name: Add Unity Localisation
if: ${{ matrix.unityLocalisation }}
run: |
# Add Unity Localisation package to package manifest
MANIFEST_PATH=${{ matrix.projectPath }}/Packages/manifest.json
jq '.dependencies += {"com.unity.localization": "1.3.2"}' "$MANIFEST_PATH" > manifest.json
mv manifest.json "$MANIFEST_PATH"
- name: Add UniTask Package
if: ${{ matrix.uniTask }}
run: |
# Add UniTask package to package manifest
MANIFEST_PATH=${{ matrix.projectPath }}/Packages/manifest.json
jq '.dependencies += {"com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask"}' "$MANIFEST_PATH" > manifest.json
mv manifest.json "$MANIFEST_PATH"
- name: Check out to Packages/YarnSpinner
uses: actions/checkout@v2
with:
fetch-depth: 0
path: ${{ matrix.projectPath }}/Packages/dev.yarnspinner.unity
- name: Run edit mode tests
run: |
docker run \
--rm \
-v ./${{ matrix.projectPath }}:/project \
-v ./output:/output \
-e TEST_MODE=EditMode \
--hostname YS-Linux-Build \
yarnspinner/unity-${{ matrix.unityVersion }}
- name: Run play mode tests
if: always()
run: |
docker run \
--rm \
-v ./${{ matrix.projectPath }}:/project \
-v ./output:/output \
-e TEST_MODE=PlayMode \
--hostname YS-Linux-Build \
yarnspinner/unity-${{ matrix.unityVersion }}
- name: Generate HTML test report (Play Mode)
uses: rjtngit/nunit-html-action@v1
if: always()
with:
inputXmlPath: output/TestResults-PlayMode.xml
outputHtmlPath: output/TestResults-PlayMode.html
- name: Generate HTML test report (Edit Mode)
uses: rjtngit/nunit-html-action@v1
if: always()
with:
inputXmlPath: output/TestResults-EditMode.xml
outputHtmlPath: output/TestResults-EditMode.html
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: Test results (edit + play, ${{ matrix.unityVersion }} ${{ matrix.targetPlatform }} ${{ matrix.unityLocalisation && 'with-unity-loc' || 'no-unity-loc' }} ${{ matrix.uniTask && 'with-unitask' || 'no-unitask' }})
# path: ${{ steps.testRunner.outputs.artifactsPath }}
path: ./output