Ejemplo n.º 1
0
    /// <summary>
    /// Call GitVersion.exe for current project. Capture output, deserialize it to GitVersionVariables object
    /// </summary>
    /// <returns></returns>
    private static GitVersionVariables GenerateVersionInfo()
    {
        var ret = new GitVersionVariables();

        using (var process = new Process())
        {
            var platformDependentScripts = Utils.PlatformDependentScripts.ScriptsFactory.ScriptsForCurrentPlatform();
            var startInfo = platformDependentScripts.GetGitVersionProcessStartInfo(GetPathToGitVersionTool());
            process.StartInfo = startInfo;

            var versionInfo = new StringBuilder();
            process.OutputDataReceived += (sender, args) => versionInfo.Append(args.Data);
            process.ErrorDataReceived  += (sender, args) => BuildHelpers.HandleCompilationError(args.Data);
            process.Start();
            process.BeginOutputReadLine();
            process.BeginErrorReadLine();
            process.WaitForExit();

            var succeed = process.ExitCode == 0;
            UnityEngine.Debug.Log(succeed ? "GitVersion succeed" : "GitVersion failed, output: " + versionInfo.ToString());

            try
            {
                // We don't need all that returns GitVersion.exe deserialize it with restricted set of properties
                ret = JsonUtility.FromJson <GitVersionVariables>(versionInfo.ToString());
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogError("GetVersion output:" + versionInfo.ToString());
                UnityEngine.Debug.LogError("Error during reading GitVersion tool output file. See the next message for error details");
                UnityEngine.Debug.LogException(e);
            }
        }
        return(ret);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Serialize GitVersionVariables object to Json and write to file
 /// </summary>
 /// <param name="gitVersion"></param>
 /// <param name="filePath"></param>
 private static void WriteInfoVariablesToFile(GitVersionVariables gitVersion, string filePath)
 {
     File.WriteAllText(filePath, JsonUtility.ToJson(gitVersion, true));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Generate version string for application
 /// </summary>
 /// <param name="versionVariables"></param>
 /// <returns></returns>
 private static string GetVersionString(GitVersionVariables versionVariables)
 {
     return(string.Format("{0}+{1}",
                          versionVariables.FullSemVer,
                          versionVariables.ShortSha));
 }