/// <inheritdoc/>
        public async Task <ReleaseEntity> CreateAsync(ReleaseEntity release)
        {
            release.PopulateBaseProperties(_org, _app, _httpContext);

            await ValidateUniquenessOfRelease(release);

            QueueBuildParameters queueBuildParameters = new QueueBuildParameters
            {
                AppCommitId = release.TargetCommitish,
                AppOwner    = release.Org,
                AppRepo     = release.App,
                TagName     = release.TagName
            };

            Build queuedBuild = await _azureDevOpsBuildClient.QueueAsync(
                queueBuildParameters,
                _azureDevOpsSettings.BuildDefinitionId);

            release.Build = new BuildEntity
            {
                Id      = queuedBuild.Id.ToString(),
                Status  = queuedBuild.Status,
                Result  = BuildResult.None,
                Started = queuedBuild.StartTime
            };

            return(await _releaseRepository.CreateAsync(release));
        }
Exemple #2
0
        /// <inheritdoc/>
        public async Task <Build> QueueAsync(
            QueueBuildParameters queueBuildParameters,
            int buildDefinitionId)
        {
            queueBuildParameters.GiteaEnvironment = $"{_generalSettings.HostName}/repos";
            queueBuildParameters.AppDeployToken   = _sourceControl.GetDeployToken();

            QueueBuildRequest queueBuildRequest = CreateBuildRequest(queueBuildParameters, buildDefinitionId);

            return(await SendRequest(queueBuildRequest));
        }
Exemple #3
0
        private static QueueBuildRequest CreateBuildRequest(QueueBuildParameters queueBuildParameters, int buildDefinitionId)
        {
            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            };

            return(new QueueBuildRequest
            {
                DefinitionReference = new DefinitionReference
                {
                    Id = buildDefinitionId
                },
                Parameters = JsonConvert.SerializeObject(queueBuildParameters, jsonSerializerSettings)
            });
        }
Exemple #4
0
        private async Task <Build> QueueDeploymentBuild(
            ReleaseEntity release,
            DeploymentEntity deploymentEntity,
            string environmentHostname)
        {
            QueueBuildParameters queueBuildParameters = new QueueBuildParameters
            {
                AppCommitId    = release.TargetCommitish,
                AppOwner       = deploymentEntity.Org,
                AppRepo        = deploymentEntity.App,
                AppEnvironment = deploymentEntity.EnvironmentName,
                Hostname       = environmentHostname,
                TagName        = deploymentEntity.TagName
            };

            return(await _azureDevOpsBuildClient.QueueAsync(
                       queueBuildParameters,
                       _azureDevOpsSettings.DeployDefinitionId));
        }