diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 276a001..43f0334 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,6 +22,7 @@ build: - echo "cloned to $GIT_CLONE_PATH" - chmod +x ./ci/build.sh - ./ci/build.sh $UNITY_VERSION + - cp ./readme.txt $BUILD_DIR artifacts: name: $CI_PROJECT_NAME-$CI_PIPELINE_ID diff --git a/ci/build.sh b/ci/build.sh index 7827da7..db4329e 100644 --- a/ci/build.sh +++ b/ci/build.sh @@ -12,28 +12,50 @@ echo "removing previous editor log..." echo "starting build using unity v$unityversion..." -# launch unity in batch mode -open -g $editorpath --args \ - -batchmode \ - -quit \ - -nographics \ - -developmentBuild \ - -executeMethod "Ktyl.Util.BuildCommand.Run" \ - -logFile $editorlogpath \ - -projectPath "$(pwd)/game" +unitypid=-1 -# wait for editor log to exist -tries=60 +launch_unity () { + # launch unity in batch mode + open -g $editorpath --args \ + -batchmode \ + -quit \ + -nographics \ + -developmentBuild \ + -executeMethod "Ktyl.Util.BuildCommand.Run" \ + -logFile $editorlogpath \ + -projectPath "$(pwd)/game" + + unitypid=`pgrep -n Unity` + echo "launched unity ($unitypid)" +} + +launch_unity + +tries=120 count=0 while [ ! -f $editorlogpath ] do + if ps -p $unitypid > /dev/null + then + echo "waiting for unity ($unitypid)" + else + echo "unity is no longer running - trying again" + + # reset launch attempts + count=0 + launch_unity + + continue + fi + + # wait a second sleep 1 # decrement count=`expr $count + 1` if [ $count -eq $tries ] ; then - echo "early timeout - $tries seconds elapsed since launch attempt" + echo "early timeout - $tries seconds elapsed since last launch attempt" exit 1 fi done