diff --git a/.circleci/config.yml b/.circleci/config.yml index 5f090986c1..bb784ef4ef 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -33,8 +33,6 @@ jobs: keys: # Parameterize the cache so that different python versions can get different versions of the packages - v1-dependencies-py<< parameters.pyversion >>-{{ checksum "python_deps.txt" }} - # fallback to using the latest cache if no exact match is found - - v1-dependencies-py<< parameters.pyversion >>- - run: name: Install Dependencies diff --git a/.yamato/csharp-tests.yml b/.yamato/csharp-tests.yml index e3e5d5b618..e16f0479ad 100644 --- a/.yamato/csharp-tests.yml +++ b/.yamato/csharp-tests.yml @@ -1,24 +1,30 @@ -name: Mac Edit Mode Tests -triggers: +test_editors: + - version: 2017.4 + - version: 2018.4 + - version: 2019.3 +--- +{% for editor in test_editors %} +test_mac_editmode_{{ editor.version }}: + name: Test Mac EditMode {{ editor.version }} + agent: + type: Unity::VM::osx + image: ml-agents/ml-agents-bokken-mac:stable + flavor: i1.small + variables: + UNITY_VERSION: {{ editor.version }} + commands: + - ./run-tests-editmode-osx-editor.sh + triggers: branches: only: - - "/develop-.*/" + - "/develop-.*/" targets: only: - - "develop" + - "develop" pull_requests: - targets: only: - "master" - "/release-.*/" - "/hotfix-.*/" - -agent: - type: Unity::VM::osx - image: ml-agents/ml-agents-bokken-mac:stable - flavor: i1.small - -variables: - LC_ALL: "en_US.UTF-8" -commands: - - ./run-tests-editmode-osx-editor.sh +{% endfor %} diff --git a/.yamato/standalone-build-test.yml b/.yamato/standalone-build-test.yml index d2da77da9c..72c58f6ba9 100644 --- a/.yamato/standalone-build-test.yml +++ b/.yamato/standalone-build-test.yml @@ -1,24 +1,30 @@ -name: Mac Standalone Build Test -triggers: - branches: - only: - - "/develop-.*/" - targets: - only: - - "develop" - pull_requests: - - targets: - only: - - "master" - - "/release-.*/" - - "/hotfix-.*/" - -agent: - type: Unity::VM::osx - image: ml-agents/ml-agents-bokken-mac:stable - flavor: i1.small - -variables: - LC_ALL: "en_US.UTF-8" -commands: - - ./run-standalone-build-osx.sh +test_editors: + - version: 2017.4 + - version: 2018.4 + - version: 2019.3 +--- +{% for editor in test_editors %} +test_mac_standalone_{{ editor.version }}: + name: Test Mac Standalone {{ editor.version }} + agent: + type: Unity::VM::osx + image: ml-agents/ml-agents-bokken-mac:stable + flavor: i1.small + variables: + UNITY_VERSION: {{ editor.version }} + commands: + - ./run-standalone-build-osx.sh + triggers: + branches: + only: + - "/develop-.*/" + targets: + only: + - "develop" + pull_requests: + - targets: + only: + - "master" + - "/release-.*/" + - "/hotfix-.*/" +{% endfor %} diff --git a/UnitySDK/Assets/ML-Agents/Editor/Tests/MLAgentsEditModeTest.cs b/UnitySDK/Assets/ML-Agents/Editor/Tests/MLAgentsEditModeTest.cs index 5bf64d00f7..61423e0ba3 100644 --- a/UnitySDK/Assets/ML-Agents/Editor/Tests/MLAgentsEditModeTest.cs +++ b/UnitySDK/Assets/ML-Agents/Editor/Tests/MLAgentsEditModeTest.cs @@ -93,9 +93,9 @@ public byte[] GetCompressedObservation() return null; } - public CompressionType GetCompressionType() + public SensorCompressionType GetCompressionType() { - return CompressionType.None; + return SensorCompressionType.None; } public string GetName() diff --git a/UnitySDK/Assets/ML-Agents/Editor/Tests/StandaloneBuildTest.cs b/UnitySDK/Assets/ML-Agents/Editor/Tests/StandaloneBuildTest.cs index b344a62c24..d88aacbd43 100644 --- a/UnitySDK/Assets/ML-Agents/Editor/Tests/StandaloneBuildTest.cs +++ b/UnitySDK/Assets/ML-Agents/Editor/Tests/StandaloneBuildTest.cs @@ -1,6 +1,9 @@ using System; using UnityEditor; using UnityEngine; +#if UNITY_2018_1_OR_NEWER +using UnityEditor.Build.Reporting; +#endif namespace MLAgents { @@ -9,8 +12,25 @@ public class StandaloneBuildTest static void BuildStandalonePlayerOSX() { string[] scenes = { "Assets/ML-Agents/Examples/3DBall/Scenes/3DBall.unity" }; - var error = BuildPipeline.BuildPlayer(scenes, "testPlayer", BuildTarget.StandaloneOSX, BuildOptions.None); - if (string.IsNullOrEmpty(error)) + var buildResult = BuildPipeline.BuildPlayer(scenes, "testPlayer", BuildTarget.StandaloneOSX, BuildOptions.None); +#if UNITY_2018_1_OR_NEWER + var isOK = buildResult.summary.result == BuildResult.Succeeded; + var error = ""; + foreach (var stepInfo in buildResult.steps) + { + foreach (var msg in stepInfo.messages) + { + if (msg.type != LogType.Log && msg.type != LogType.Warning) + { + error += msg.content + "\n"; + } + } + } +#else + var error = buildResult; + var isOK = string.IsNullOrEmpty(error); +#endif + if (isOK) { EditorApplication.Exit(0); } @@ -18,10 +38,11 @@ static void BuildStandalonePlayerOSX() { Console.Error.WriteLine(error); EditorApplication.Exit(1); - + } Debug.Log(error); + } - + } } diff --git a/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Prefabs/FoodCollectorArea.prefab b/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Prefabs/FoodCollectorArea.prefab index 2586ae7b43..01fff3e096 100644 --- a/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Prefabs/FoodCollectorArea.prefab +++ b/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Prefabs/FoodCollectorArea.prefab @@ -3686,7 +3686,6 @@ MonoBehaviour: vectorObservationSize: 53 numStackedVectorObservations: 1 vectorActionSize: 03000000030000000300000002000000 - cameraResolutions: [] vectorActionDescriptions: [] vectorActionSpaceType: 0 m_Model: {fileID: 11400000, guid: d32fca21cf4c04536ab7f88eb9de83e0, type: 3} @@ -3705,8 +3704,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: agentParameters: - agentCameras: [] - agentRenderTextures: [] maxStep: 5000 resetOnDone: 1 onDemandDecision: 0 @@ -3750,8 +3747,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: agentParameters: - agentCameras: [] - agentRenderTextures: [] maxStep: 5000 resetOnDone: 1 onDemandDecision: 0 @@ -3763,7 +3758,7 @@ MonoBehaviour: badMaterial: {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2} goodMaterial: {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2} frozenMaterial: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} - myLaser: {fileID: 1081721624670010} + myLaser: {fileID: 1617924810425504} contribute: 0 useVectorObs: 1 --- !u!114 &114192565006091356 @@ -3789,8 +3784,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: agentParameters: - agentCameras: [] - agentRenderTextures: [] maxStep: 5000 resetOnDone: 1 onDemandDecision: 0 @@ -3802,7 +3795,7 @@ MonoBehaviour: badMaterial: {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2} goodMaterial: {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2} frozenMaterial: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} - myLaser: {fileID: 1081721624670010} + myLaser: {fileID: 1045923826166930} contribute: 0 useVectorObs: 1 --- !u!114 &114374774605792098 @@ -3820,7 +3813,6 @@ MonoBehaviour: vectorObservationSize: 53 numStackedVectorObservations: 1 vectorActionSize: 03000000030000000300000002000000 - cameraResolutions: [] vectorActionDescriptions: [] vectorActionSpaceType: 0 m_Model: {fileID: 11400000, guid: d32fca21cf4c04536ab7f88eb9de83e0, type: 3} @@ -3853,7 +3845,6 @@ MonoBehaviour: vectorObservationSize: 53 numStackedVectorObservations: 1 vectorActionSize: 03000000030000000300000002000000 - cameraResolutions: [] vectorActionDescriptions: [] vectorActionSpaceType: 0 m_Model: {fileID: 11400000, guid: d32fca21cf4c04536ab7f88eb9de83e0, type: 3} @@ -3872,8 +3863,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: agentParameters: - agentCameras: [] - agentRenderTextures: [] maxStep: 5000 resetOnDone: 1 onDemandDecision: 0 @@ -3885,7 +3874,7 @@ MonoBehaviour: badMaterial: {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2} goodMaterial: {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2} frozenMaterial: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} - myLaser: {fileID: 1081721624670010} + myLaser: {fileID: 1421240237750412} contribute: 0 useVectorObs: 1 --- !u!114 &114661830999747712 @@ -3911,8 +3900,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: agentParameters: - agentCameras: [] - agentRenderTextures: [] maxStep: 5000 resetOnDone: 1 onDemandDecision: 0 @@ -3924,7 +3911,7 @@ MonoBehaviour: badMaterial: {fileID: 2100000, guid: 88b9ae7af2c1748a0a1f63407587a601, type: 2} goodMaterial: {fileID: 2100000, guid: c67450f290f3e4897bc40276a619e78d, type: 2} frozenMaterial: {fileID: 2100000, guid: 66163cf35956a4be08e801b750c26f33, type: 2} - myLaser: {fileID: 1081721624670010} + myLaser: {fileID: 1941433838307300} contribute: 0 useVectorObs: 1 --- !u!114 &114762047763154270 @@ -3964,7 +3951,6 @@ MonoBehaviour: vectorObservationSize: 53 numStackedVectorObservations: 1 vectorActionSize: 03000000030000000300000002000000 - cameraResolutions: [] vectorActionDescriptions: [] vectorActionSpaceType: 0 m_Model: {fileID: 11400000, guid: d32fca21cf4c04536ab7f88eb9de83e0, type: 3} @@ -3986,7 +3972,6 @@ MonoBehaviour: vectorObservationSize: 53 numStackedVectorObservations: 1 vectorActionSize: 03000000030000000300000002000000 - cameraResolutions: [] vectorActionDescriptions: [] vectorActionSpaceType: 0 m_Model: {fileID: 11400000, guid: d32fca21cf4c04536ab7f88eb9de83e0, type: 3} diff --git a/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/FoodCollector.unity b/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/FoodCollector.unity index cf9500d12b..db8535a5e6 100644 --- a/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/FoodCollector.unity +++ b/UnitySDK/Assets/ML-Agents/Examples/FoodCollector/Scenes/FoodCollector.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44971162, g: 0.49977726, b: 0.5756362, a: 1} + m_IndirectSpecularColor: {r: 0.4497121, g: 0.4997778, b: 0.5756369, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 @@ -747,9 +747,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4fe57113e76a5426297487dd6faadc5b, type: 3} m_Name: m_EditorClassIdentifier: - broadcastHub: - brainsToControl: - - {fileID: 11400000, guid: 9e7865ec29c894c2d8c1617b0fa392f9, type: 2} m_TrainingConfiguration: width: 500 height: 500 diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Academy.cs b/UnitySDK/Assets/ML-Agents/Scripts/Academy.cs index e84f48bbef..2bd1b3ce27 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Academy.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Academy.cs @@ -92,7 +92,7 @@ public EnvironmentConfiguration( "docs/Learning-Environment-Design-Academy.md")] public abstract class Academy : MonoBehaviour { - const string k_ApiVersion = "API-10"; + const string k_ApiVersion = "API-11"; /// Temporary storage for global gravity value /// Used to restore oringal value when deriving Academy modifies it diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Agent.cs b/UnitySDK/Assets/ML-Agents/Scripts/Agent.cs index 013bf83fdc..d645b1cea5 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Agent.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Agent.cs @@ -150,7 +150,7 @@ public class AgentParameters /// of the environment extracts its current observation, sends them to its /// policy and in return receives an action. In practice, /// however, an agent need not send its observation at every step since very - /// little may have changed between successive steps. + /// little may have changed between successive steps. /// /// At any step, an agent may be considered . /// This could occur due to a variety of reasons: @@ -319,15 +319,15 @@ void OnDisable() /// /// Updates the Model for the agent. Any model currently assigned to the - /// agent will be replaced with the provided one. If the arguments are + /// agent will be replaced with the provided one. If the arguments are /// identical to the current parameters of the agent, the model will - /// remain unchanged. + /// remain unchanged. /// - /// The identifier of the behavior. This - /// will categorize the agent when training. + /// The identifier of the behavior. This + /// will categorize the agent when training. /// /// The model to use for inference. - /// Define on what device the model + /// Define on what device the model /// will be run. public void GiveModel( string behaviorName, diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CameraSensor.cs b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CameraSensor.cs index e41eebbd87..c28b9f98fd 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CameraSensor.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CameraSensor.cs @@ -55,9 +55,9 @@ public void WriteToTensor(TensorProxy tensorProxy, int agentIndex) } } - public CompressionType GetCompressionType() + public SensorCompressionType GetCompressionType() { - return CompressionType.PNG; + return SensorCompressionType.PNG; } /// diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CompressedObservation.cs b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CompressedObservation.cs index 1768e8c039..5dfe6f85bf 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CompressedObservation.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/CompressedObservation.cs @@ -13,7 +13,7 @@ public struct CompressedObservation /// /// The format of the compressed data /// - public CompressionType CompressionType; + public SensorCompressionType CompressionType; /// /// The uncompressed dimensions of the data. diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/ISensor.cs b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/ISensor.cs index 572d450506..efa9d3c278 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/ISensor.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/ISensor.cs @@ -2,7 +2,7 @@ namespace MLAgents.Sensor { - public enum CompressionType + public enum SensorCompressionType { None, PNG @@ -38,10 +38,10 @@ public interface ISensor { byte[] GetCompressedObservation(); /// - /// Return the compression type being used. If no compression is used, return CompressionType.None + /// Return the compression type being used. If no compression is used, return SensorCompressionType.None /// /// - CompressionType GetCompressionType(); + SensorCompressionType GetCompressionType(); /// /// Get the name of the sensor. This is used to ensure deterministic sorting of the sensors on an Agent, diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/RenderTextureSensor.cs b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/RenderTextureSensor.cs index 27ef4fd01a..f2b5f7bccf 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/RenderTextureSensor.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/RenderTextureSensor.cs @@ -55,9 +55,9 @@ public void WriteToTensor(TensorProxy tensorProxy, int index) } } - public CompressionType GetCompressionType() + public SensorCompressionType GetCompressionType() { - return CompressionType.PNG; + return SensorCompressionType.PNG; } /// diff --git a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/SensorBase.cs b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/SensorBase.cs index cb3de11d94..15eb53bee6 100644 --- a/UnitySDK/Assets/ML-Agents/Scripts/Sensor/SensorBase.cs +++ b/UnitySDK/Assets/ML-Agents/Scripts/Sensor/SensorBase.cs @@ -46,9 +46,9 @@ public virtual byte[] GetCompressedObservation() return null; } - public virtual CompressionType GetCompressionType() + public virtual SensorCompressionType GetCompressionType() { - return CompressionType.None; + return SensorCompressionType.None; } } } diff --git a/gym-unity/setup.py b/gym-unity/setup.py index 9d2167ac80..f724e0dae8 100755 --- a/gym-unity/setup.py +++ b/gym-unity/setup.py @@ -5,7 +5,7 @@ from setuptools import setup, find_packages from setuptools.command.install import install -VERSION = "0.11.0.dev0" +VERSION = "0.11.0" class VerifyVersionCommand(install): diff --git a/ml-agents-envs/mlagents/envs/environment.py b/ml-agents-envs/mlagents/envs/environment.py index a0f6a08111..818fab4130 100644 --- a/ml-agents-envs/mlagents/envs/environment.py +++ b/ml-agents-envs/mlagents/envs/environment.py @@ -42,6 +42,7 @@ class UnityEnvironment(BaseUnityEnvironment): SCALAR_ACTION_TYPES = (int, np.int32, np.int64, float, np.float32, np.float64) SINGLE_BRAIN_ACTION_TYPES = SCALAR_ACTION_TYPES + (list, np.ndarray) SINGLE_BRAIN_TEXT_TYPES = list + API_VERSION = "API-11" def __init__( self, @@ -72,7 +73,7 @@ def __init__( atexit.register(self._close) self.port = base_port + worker_id self._buffer_size = 12000 - self._version_ = "API-10" + self._version_ = UnityEnvironment.API_VERSION self._loaded = ( False ) # If true, this means the environment was successfully loaded diff --git a/ml-agents-envs/mlagents/envs/mock_communicator.py b/ml-agents-envs/mlagents/envs/mock_communicator.py index c360ea94ef..74d21e5b66 100755 --- a/ml-agents-envs/mlagents/envs/mock_communicator.py +++ b/ml-agents-envs/mlagents/envs/mock_communicator.py @@ -1,4 +1,5 @@ from .communicator import Communicator +from .environment import UnityEnvironment from mlagents.envs.communicator_objects.unity_rl_output_pb2 import UnityRLOutputProto from mlagents.envs.communicator_objects.brain_parameters_pb2 import BrainParametersProto from mlagents.envs.communicator_objects.unity_rl_initialization_output_pb2 import ( @@ -52,7 +53,10 @@ def initialize(self, inputs: UnityInputProto) -> UnityOutputProto: is_training=True, ) rl_init = UnityRLInitializationOutputProto( - name="RealFakeAcademy", version="API-10", log_path="", brain_parameters=[bp] + name="RealFakeAcademy", + version=UnityEnvironment.API_VERSION, + log_path="", + brain_parameters=[bp], ) output = UnityRLOutputProto(agentInfos=self._get_agent_infos()) return UnityOutputProto(rl_initialization_output=rl_init, rl_output=output) diff --git a/ml-agents-envs/setup.py b/ml-agents-envs/setup.py index 126c0b2e22..f2021aee65 100644 --- a/ml-agents-envs/setup.py +++ b/ml-agents-envs/setup.py @@ -3,7 +3,7 @@ from setuptools import setup from setuptools.command.install import install -VERSION = "0.11.0.dev0" +VERSION = "0.11.0" here = os.path.abspath(os.path.dirname(__file__)) diff --git a/ml-agents/setup.py b/ml-agents/setup.py index 34be08447d..5211612ee4 100644 --- a/ml-agents/setup.py +++ b/ml-agents/setup.py @@ -5,7 +5,7 @@ from setuptools import setup, find_namespace_packages from setuptools.command.install import install -VERSION = "0.11.0.dev0" +VERSION = "0.11.0" here = os.path.abspath(os.path.dirname(__file__)) diff --git a/run-standalone-build-osx.sh b/run-standalone-build-osx.sh index f780281570..988ba571ec 100755 --- a/run-standalone-build-osx.sh +++ b/run-standalone-build-osx.sh @@ -2,37 +2,44 @@ set -eo pipefail -EDITOR_VERSION="2017.4.33f1" -BOKKEN_UNITY="/Users/bokken/${EDITOR_VERSION}/Unity.app/Contents/MacOS/Unity" -HUB_UNITY="/Applications/Unity/Hub/Editor/${EDITOR_VERSION}/Unity.app/Contents/MacOS/Unity" +if [[ -z "${UNITY_VERSION}" ]]; then + + echo "Environment Variable UNITY_VERSION was not set" + exit 1 -if [[ -f ${BOKKEN_UNITY} ]]; then - UNITY=${BOKKEN_UNITY} else - UNITY=${HUB_UNITY} -fi + BOKKEN_UNITY="/Users/bokken/${UNITY_VERSION}/Unity.app/Contents/MacOS/Unity" + HUB_UNITY="/Applications/Unity/Hub/Editor/${UNITY_VERSION}/Unity.app/Contents/MacOS/Unity" -pushd $(dirname "${0}") > /dev/null -BASETPATH=$(pwd -L) -popd > /dev/null + if [[ -f ${BOKKEN_UNITY} ]]; then + UNITY=${BOKKEN_UNITY} + else + UNITY=${HUB_UNITY} + fi -echo "Cleaning previous results" + pushd $(dirname "${0}") > /dev/null + BASETPATH=$(pwd -L) + popd > /dev/null -echo "Starting tests via $UNITY" + echo "Cleaning previous results" -CMD_LINE="$UNITY -projectPath $BASETPATH/UnitySDK -batchmode -executeMethod MLAgents.StandaloneBuildTest.BuildStandalonePlayerOSX" + echo "Starting tests via $UNITY" -echo "$CMD_LINE ..." + CMD_LINE="$UNITY -projectPath $BASETPATH/UnitySDK -logfile - -batchmode -executeMethod MLAgents.StandaloneBuildTest.BuildStandalonePlayerOSX" -${CMD_LINE} -RES=$? + echo "$CMD_LINE ..." -if [[ "${RES}" -eq "0" ]]; then - echo "Standalone build completed successfully."; - exit 0; -else - echo "Standalone build failed." - exit 1; -fi + ${CMD_LINE} + RES=$? -exit ${RES} + if [[ "${RES}" -eq "0" ]]; then + echo "Standalone build completed successfully."; + exit 0; + else + echo "Standalone build failed." + exit 1; + fi + + exit ${RES} + +fi diff --git a/run-tests-editmode-osx-editor.sh b/run-tests-editmode-osx-editor.sh index bdaaf04102..6d6c1ae42d 100755 --- a/run-tests-editmode-osx-editor.sh +++ b/run-tests-editmode-osx-editor.sh @@ -2,49 +2,56 @@ set -eo pipefail -EDITOR_VERSION="2017.4.33f1" -BOKKEN_UNITY="/Users/bokken/${EDITOR_VERSION}/Unity.app/Contents/MacOS/Unity" -HUB_UNITY="/Applications/Unity/Hub/Editor/${EDITOR_VERSION}/Unity.app/Contents/MacOS/Unity" +if [[ -z "${UNITY_VERSION}" ]]; then + + echo "Environment Variable UNITY_VERSION was not set" + exit 1 -if [[ -f ${BOKKEN_UNITY} ]]; then - UNITY=${BOKKEN_UNITY} else - UNITY=${HUB_UNITY} -fi + BOKKEN_UNITY="/Users/bokken/${UNITY_VERSION}/Unity.app/Contents/MacOS/Unity" + HUB_UNITY="/Applications/Unity/Hub/Editor/${UNITY_VERSION}/Unity.app/Contents/MacOS/Unity" -pushd $(dirname "${0}") > /dev/null -BASETPATH=$(pwd -L) -popd > /dev/null + if [[ -f ${BOKKEN_UNITY} ]]; then + UNITY=${BOKKEN_UNITY} + else + UNITY=${HUB_UNITY} + fi -echo "Cleaning previous results" + pushd $(dirname "${0}") > /dev/null + BASETPATH=$(pwd -L) + popd > /dev/null -if [[ -e ${BASETPATH}/results.xml ]] -then - rm ${BASETPATH}/results.xml -fi + echo "Cleaning previous results" -echo "Starting tests via $UNITY" + if [[ -e ${BASETPATH}/results.xml ]] + then + rm ${BASETPATH}/results.xml + fi -CMD_LINE="$UNITY -runTests -projectPath $BASETPATH/UnitySDK -testResults $BASETPATH/results.xml -testPlatform editmode" + echo "Starting tests via $UNITY" -echo "$CMD_LINE ..." + CMD_LINE="$UNITY -runTests -logfile - -projectPath $BASETPATH/UnitySDK -testResults $BASETPATH/results.xml -testPlatform editmode" -$CMD_LINE -RES=$? + echo "$CMD_LINE ..." -TOTAL=$(echo 'cat /test-run/test-suite/@total' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') -PASSED=$(echo 'cat /test-run/test-suite/@passed' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') -FAILED=$(echo 'cat /test-run/test-suite/@failed' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') -DURATION=$(echo 'cat /test-run/test-suite/@duration' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') + $CMD_LINE + RES=$? -echo "$TOTAL tests executed in ${DURATION}s: $PASSED passed, $FAILED failed. More details in results.xml" + TOTAL=$(echo 'cat /test-run/test-suite/@total' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') + PASSED=$(echo 'cat /test-run/test-suite/@passed' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') + FAILED=$(echo 'cat /test-run/test-suite/@failed' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') + DURATION=$(echo 'cat /test-run/test-suite/@duration' | xmllint --shell results.xml | awk -F'[="]' '!/>/{print $(NF-1)}') -if [[ ${RES} -eq 0 ]] && [[ -e ${BASETPATH}/results.xml ]]; then - echo "Test run SUCCEEDED!" -else - echo "Test run FAILED!" -fi + echo "$TOTAL tests executed in ${DURATION}s: $PASSED passed, $FAILED failed. More details in results.xml" + + if [[ ${RES} -eq 0 ]] && [[ -e ${BASETPATH}/results.xml ]]; then + echo "Test run SUCCEEDED!" + else + echo "Test run FAILED!" + fi + + rm "${BASETPATH}/results.xml" -rm "${BASETPATH}/results.xml" + exit ${RES} -exit ${RES} +fi \ No newline at end of file diff --git a/test_constraints_max_version.txt b/test_constraints_max_version.txt index a4326315e6..9d8f6832b9 100644 --- a/test_constraints_max_version.txt +++ b/test_constraints_max_version.txt @@ -2,4 +2,4 @@ # For projects with upper bounds, we should periodically update this list to the latest release version grpcio>=1.23.0 numpy>=1.17.2 -tensorflow>=1.14.0 +tensorflow>=1.14.0,<2.0