protected async Task CreateBuildEngineBuildAsync(Product product) { await ResetPreviousBuildAsync(product); BuildResponse buildResponse = null; if (SetBuildEngineEndpoint(product.Project.Organization)) { buildResponse = BuildEngineApi.CreateBuild(product.WorkflowJobId); } if ((buildResponse != null) && (buildResponse.Id != 0)) { product.WorkflowBuildId = buildResponse.Id; var productBuild = new ProductBuild { ProductId = product.Id, BuildId = product.WorkflowBuildId }; await ProductBuildRepository.CreateAsync(productBuild); await ProductRepository.UpdateAsync(product); var monitorJob = Job.FromExpression <BuildEngineBuildService>(service => service.CheckBuild(product.Id)); RecurringJobManager.AddOrUpdate(GetHangfireToken(product.Id), monitorJob, "* * * * *"); } else { // TODO: Send Notification // Throw Exception to force retry throw new Exception("Create build failed"); } }
public void CreateTestBuild(int jobId) { var client = new BuildEngineApi(BaseUrl, ApiAccessKey); var response = client.CreateBuild(jobId); Assert.NotNull(response); Assert.Equal("initialized", response.Status); Assert.NotEqual(0, response.Id); Assert.Equal(2, response.JobId); }
protected async Task CreateBuildEngineBuildAsync(Product product, Dictionary <string, object> parmsDictionary, PerformContext context) { await ResetPreviousBuildAsync(product); BuildResponse buildResponse = null; if (SetBuildEngineEndpoint(product.Project.Organization)) { var targets = GetTargets(parmsDictionary, "apk play-listing"); var environment = GetEnvironment(parmsDictionary); environment["PRODUCT_ID"] = product.Id.ToString(); environment["PROJECT_ID"] = product.ProjectId.ToString(); var build = new Build { Targets = targets, Environment = environment }; buildResponse = BuildEngineApi.CreateBuild(product.WorkflowJobId, build); } if ((buildResponse != null) && (buildResponse.Id != 0)) { product.WorkflowBuildId = buildResponse.Id; var productBuild = new ProductBuild { ProductId = product.Id, BuildId = product.WorkflowBuildId }; await ProductBuildRepository.CreateAsync(productBuild); await ProductRepository.UpdateAsync(product); var monitorJob = Job.FromExpression <BuildEngineBuildService>(service => service.CheckBuild(product.Id)); RecurringJobManager.AddOrUpdate(GetHangfireToken(product.Id), monitorJob, "* * * * *"); } else { var messageParms = new Dictionary <string, object>() { { "projectName", product.Project.Name }, { "productName", product.ProductDefinition.Name } }; await SendNotificationOnFinalRetryAsync(context, product.Project.Organization, product.Project.Owner, "buildFailedUnableToCreate", messageParms); // Throw Exception to force retry throw new Exception("Create build failed"); } }
public void CreateTestBuild(int jobId) { var client = new BuildEngineApi(BaseUrl, ApiAccessKey); var env = new Dictionary <string, string> { { "BUILD_SHARE_APP_LINK", "1" }, { "BUILD_MANAGE_VERSION_NAME", "1" }, { "BUILD_MANAGE_VERSION_CODE", "1" } }; var build = new Build { Targets = "apk play-listing", Environment = env }; var response = client.CreateBuild(jobId, build); Assert.NotNull(response); Assert.Equal("initialized", response.Status); Assert.NotEqual(0, response.Id); Assert.Equal(jobId, response.JobId); }