Workflow file for this run
This file contains 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: Create UnityPackage | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- workflow-wip-2 | |
env: | |
UNITY_PROJECT_PATH: . | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
checkout: | |
runs-on: [self-hosted, Windows, X64, Unity] | |
steps: | |
- id: checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
lfs: true | |
detect-unity-version: | |
needs: checkout | |
runs-on: [self-hosted, Windows, X64, Unity] | |
outputs: | |
unity-editor-executable: ${{ steps.detect-unity-version.outputs.unity-editor-executable }} | |
steps: | |
- name: Detect Unity Version | |
id: detect-unity-version | |
run: | | |
PROJECT_VERSION_PATH="${UNITY_PROJECT_PATH}/ProjectSettings/ProjectVersion.txt" | |
UNITY_HUB="C:\Program Files\Unity Hub\Unity Hub.exe" | |
UNITY_VERSION=`cat ${PROJECT_VERSION_PATH} | sed -n -E "s/^m_EditorVersion:\s+//p" | head -n 1` | |
UNITY_CHANGESET=`cat ${PROJECT_VERSION_PATH} | sed -n -E "s/^m_EditorVersionWithRevision:\s+\S+\s+\((\S+)\)/\1/p" | head -n 1` | |
UNITY_EDITOR_EXECUTABLE=`"${UNITY_HUB}" -- --headless editors --installed | \ | |
sed -n -E "s/^${UNITY_VERSION} , installed at //p" | \ | |
head -n 1` | |
if [ -z "${UNITY_EDITOR_EXECUTABLE}" ]; then | |
echo "Unity ${UNITY_VERSION} is not installed." | |
exit 1 | |
# コマンドラインからのインストールは Unity 3.7.0 時点では UAC 必須で難しい | |
UNITY_INSTALL_COMMAND="\"${UNITY_HUB}\" -- --headless install \ | |
--version ${UNITY_VERSION} \ | |
--changeset ${UNITY_CHANGESET} \ | |
--module windows-il2cpp \ | |
--childModules" | |
fi | |
echo "unity-editor-executable=${UNITY_EDITOR_EXECUTABLE}" >> "${GITHUB_OUTPUT}" | |
run-edit-mode-tests: | |
needs: detect-unity-version | |
runs-on: [self-hosted, Windows, X64, Unity] | |
steps: | |
- name: Run EditMode Tests | |
id: run-edit-mode-tests | |
run: | | |
echo "Run EditMode Tests..." | |
# RunEditModeTests の実行の結果、終了コードが 0 でない場合でもテストの結果を表示したいので set +e して一時的に回避する | |
set +e | |
"${{ needs.detect-unity-version.outputs.unity-editor-executable }}" \ | |
-batchmode \ | |
-silent-crashes \ | |
-projectPath "${UNITY_PROJECT_PATH}" \ | |
-executeMethod "UniGLTF.TestRunner.RunEditModeTests" \ | |
-logFile output.log \ | |
-testRunnerNUnitXmlFile output.xml | |
RET=$? | |
set -e | |
echo "Output Log..." | |
cat output.log | egrep "^\[\[TestRunnerLog\]\]" | |
if [ ${RET:-1} -eq 0 ]; then | |
echo "Test succeeded." | |
exit 0 | |
else | |
echo "Test failed." | |
exit 1 | |
fi | |
- uses: dorny/test-reporter@v1 | |
if: ${{ !cancelled() }} | |
with: | |
name: UnityPackage Test Report | |
path: output.xml | |
reporter: dotnet-trx | |