private static CiEvent createEvent(TfsBuildInfo buildInfo, String buildDefinitionName, bool isManualCause, DateTime?startTime,
                                           DateTime?finishTime)
        {
            var ciEvent = new CiEvent();

            ciEvent.BuildInfo = buildInfo;

            ciEvent.BuildId    = buildInfo.BuildId + "." + buildInfo.BuildNumber;
            ciEvent.BuildTitle = buildInfo.BuildNumber;

            ciEvent.ProjectDisplayName = buildDefinitionName;
            ciEvent.PhaseType          = "post";

            //cause
            var cause = new CiEventCause();

            cause.CauseType = isManualCause ? CiEventCauseType.User : CiEventCauseType.Undefined;
            ciEvent.Causes.Add(cause);

            if (startTime.HasValue)
            {
                ciEvent.StartTime = OctaneUtils.ConvertToOctaneTime(startTime.Value);
                if (finishTime.HasValue)
                {
                    ciEvent.Duration = (long)(finishTime.Value - startTime.Value).TotalMilliseconds;
                }
            }

            return(ciEvent);
        }
Exemplo n.º 2
0
        public CiEvent ToCiEvent()
        {
            var ciEvent = new CiEvent();

            //create  build info
            var elements = Resource.Definition.Url.Split('/').ToList();
            var i        = elements.FindIndex(x => x == "_apis");

            ciEvent.BuildInfo = new TfsBuildInfo(Resource.Id.ToString(), Resource.BuildNumber, elements[i - 1], Resource.Definition.Id);

            //start filling ciEvent
            switch (EventType)
            {
            case "build.complete":
                ciEvent.EventType = CiEventType.Finished;
                break;

            default:
                ciEvent.EventType = CiEventType.Undefined;
                break;
            }

            ciEvent.BuildId = ciEvent.BuildInfo.BuildId + "." + ciEvent.BuildInfo.BuildNumber;
            //ciEvent.Project = OctaneUtils.GenerateOctaneJobCiId(ciEvent.BuildInfo.ProjectId, ciEvent.BuildInfo.BuildDefinitionId);
            ciEvent.BuildTitle = ciEvent.BuildInfo.BuildNumber;
            var cause = new CiEventCause();

            switch (Resource.Reason)
            {
            case "manual":
                cause.CauseType = CiEventCauseType.User;
                break;

            default:
                cause.CauseType = CiEventCauseType.Undefined;
                break;
            }
            ciEvent.Causes.Add(cause);
            ciEvent.StartTime          = OctaneUtils.ConvertToOctaneTime(Resource.StartTime);
            ciEvent.Duration           = (long)(Resource.FinishTime - Resource.StartTime).TotalMilliseconds;
            ciEvent.ProjectDisplayName = Resource.Definition.Name;
            ciEvent.PhaseType          = "post";

            switch (Resource.Status)
            {
            case "succeeded":
                ciEvent.BuildResult = CiBuildResult.Success;
                break;

            case "partiallySucceeded":
                ciEvent.BuildResult = CiBuildResult.Unstable;
                break;

            case "failed":
                ciEvent.BuildResult = CiBuildResult.Failure;
                break;

            case "stopped":
                ciEvent.BuildResult = CiBuildResult.Aborted;
                break;

            default:
                ciEvent.BuildResult = CiBuildResult.Unavailable;
                break;

                //UNSTABLE("unstable"),
            }

            return(ciEvent);
        }
Exemplo n.º 3
0
        public static CiEvent ToCiEvent(Build build)
        {
            var ciEvent = new CiEvent();


            //create  build info
            TfsBuildInfo buildInfo = new TfsBuildInfo();
            var          elements  = build.Definition.Url.Split('/').ToList();
            var          i         = elements.FindIndex(x => x == "_apis");

            buildInfo.CollectionName    = elements[i - 2];
            buildInfo.Project           = elements[i - 1];
            buildInfo.BuildDefinitionId = build.Definition.Id.ToString();
            buildInfo.BuildId           = build.Id.ToString();
            buildInfo.BuildName         = build.BuildNumber;
            ciEvent.BuildInfo           = buildInfo;

            //start filling ciEvent
            ciEvent.BuildId = buildInfo.BuildId + "." + buildInfo.BuildName;

            ciEvent.Project    = OctaneUtils.GenerateOctaneJobCiId(buildInfo.CollectionName, buildInfo.Project, buildInfo.BuildDefinitionId);
            ciEvent.BuildTitle = buildInfo.BuildName;
            var cause = new CiEventCause();

            switch (build.Reason)
            {
            case BuildReason.Manual:
                cause.CauseType = CiEventCauseType.User;
                break;

            default:
                cause.CauseType = CiEventCauseType.Undefined;
                break;
            }
            ciEvent.Causes.Add(cause);

            ciEvent.ProjectDisplayName = build.Definition.Name;
            ciEvent.PhaseType          = "post";


            if (build.StartTime.HasValue)
            {
                ciEvent.StartTime = OctaneUtils.ConvertToOctaneTime(build.StartTime.Value);
                if (build.FinishTime.HasValue)
                {
                    ciEvent.Duration = (long)(build.FinishTime.Value - build.StartTime.Value).TotalMilliseconds;
                }
            }

            if (build.Result.HasValue)
            {
                switch (build.Result)
                {
                case BuildResult.Succeeded:
                    ciEvent.BuildResult = CiBuildResult.Success;
                    break;

                case BuildResult.Failed:
                    ciEvent.BuildResult = CiBuildResult.Failure;
                    break;

                case BuildResult.Canceled:
                    ciEvent.BuildResult = CiBuildResult.Aborted;
                    break;

                case BuildResult.PartiallySucceeded:
                    ciEvent.BuildResult = CiBuildResult.Unstable;
                    break;

                default:
                    ciEvent.BuildResult = CiBuildResult.Unavailable;
                    break;
                }
            }


            return(ciEvent);
        }