73c71bc988
Every PR to this repo comes from a fork -- including maintainers', who work from Scriptwonder/unity-mcp. GitHub withholds secrets from runs triggered by a fork's pull request, so unity-tests.yml skips and reports a green check having compiled nothing. Across the last 60 runs of that workflow: 51 pull_request (all skipped), 9 pull_request_target, and zero push/workflow_call. No PR has ever been compile-verified. Unity refuses to open a project without an activated license, so there is no way to compile via the Editor without secrets. This sidesteps that: it never launches Unity. It pulls the PUBLIC unityci/editor image purely to read reference assemblies out of it, and drives Roslyn -- Unity's own bundled csc -- directly. A compiler needs no license. Compiles MCPForUnity.Runtime and MCPForUnity.Editor for win, osx and linux. The existing Unity matrix is linux-only, so the UNITY_EDITOR_WIN and UNITY_EDITOR_OSX branches have never been compiled anywhere in CI. Runtime targets netstandard2.1 and Editor targets .NET 4.8, matching what Unity does; feeding both BCLs to one compile double-defines System.Object. Reference manifests and defines are captured from Unity's generated csprojs rather than globbed: Editor/Data holds the whole .NET 4.8 BCL plus vendored libraries Unity deliberately does not reference (ExCSS.Unity redefines System.Tuple, cscompmgd.dll redefines Microsoft.CSharp. CompilerError). Both need regenerating when defaultVersion changes. Verified locally against 2021.3.45f2: all six compiles pass, and a probe error behind #if UNITY_EDITOR_OSX fails the osx pass with exit 1 while win and linux stay green. This does not replace unity-tests.yml -- it compiles, it does not run tests.