Ejemplo n.º 1
0
        public TriggeredBuildDto TriggerBuild(BuildRepository builds, UserDto user, TriggerBuildRequestDto request)
        {
            int newId    = builds.All().Items.Max(i => Int32.Parse(i.Id)) + 1;
            var newBuild = new BuildDto
            {
                Id            = newId.ToString(),
                BuildTypeId   = request.BuildType.Id,
                Status        = BuildStatus.UNKNOWN,
                State         = "queued",
                BranchName    = request.BranchName,
                DefaultBranch = true,
                BuildType     = request.BuildType,
                QueuedDate    = DateTime.UtcNow.ToString(Constants.TEAMCITY_DATETIME_FORMAT),
                Triggered     = new TriggeredDto
                {
                    User = user
                },
                Comment = new BuildCommentDto
                {
                    User      = user,
                    Timestamp = DateTime.UtcNow.ToString(Constants.TEAMCITY_DATETIME_FORMAT),
                    Text      = request.Comment?.Text
                },
                Properties = request.Properties
            };

            this.Add(newBuild);
            builds.Add(newBuild);

            return(new TriggeredBuildDto
            {
                Id = newId,
                BuildTypeId = request.BuildType.Id
            });
        }
Ejemplo n.º 2
0
        public async Task <IBuild> RunBuild(
            IDictionary <string, string> parameters = null,
            bool queueAtTop             = false,
            bool?cleanSources           = null,
            bool rebuildAllDependencies = false,
            string comment           = null,
            string logicalBranchName = null,
            bool personal            = false)
        {
            var request = new TriggerBuildRequestDto
            {
                BuildType = new BuildTypeDto {
                    Id = this.IdString
                },
                BranchName = logicalBranchName,
                Comment    = comment != null ? new CommentDto {
                    Text = comment
                } : null,
                Personal          = personal,
                TriggeringOptions = new TriggeringOptionsDto
                {
                    CleanSources           = cleanSources,
                    RebuildAllDependencies = rebuildAllDependencies,
                    QueueAtTop             = queueAtTop
                },
                Properties = parameters != null
                ? new ParametersDto(parameters.Select(par => new ParameterDto(par.Key, par.Value)).ToList())
                : null
            };

            var triggeredBuildDto = await Service.TriggerBuild(request).ConfigureAwait(false);

            return(await Instance.Builds.ById(
                       new Id(
                           triggeredBuildDto.Id?.ToString()
                           ?? throw new NullReferenceException())).ConfigureAwait(false));
        }