public void CanCreateBuildConfig() { var createProject = new CreateProject { Id = projectWithBuild, Name = projectWithBuild, }; var response = Client.CreateProject(createProject); var createBuildConfig = new CreateBuildConfig { Locator = "id:" + createProject.Id, Name = "BuildMe" }; var buildConfigResponse = Client.CreateBuildConfig(createBuildConfig); Assert.That(buildConfigResponse, Is.Not.Null); Assert.That(buildConfigResponse.Name, Is.Not.Null); Assert.That(buildConfigResponse.AgentRequirementsResponse, Is.Not.Null); Assert.That(buildConfigResponse.ArtifactDependenciesResponse, Is.Not.Null); Assert.That(buildConfigResponse.Builds, Is.Not.Null); Assert.That(buildConfigResponse.FeaturesResponse, Is.Not.Null); Assert.That(buildConfigResponse.SettingsResponse, Is.Not.Null); Client.DeleteProject(new DeleteProject { Locator = "id:" + response.Id }); }
public void CanCreateBuildConfig() { var createProject = new CreateProject { Id = projectWithBuild, Name = projectWithBuild, }; var response = Client.CreateProject(createProject); var createBuildConfig = new CreateBuildConfig { Locator = "id:" + createProject.Id, Name = "BuildMe" }; var buildConfigResponse = Client.CreateBuildConfig(createBuildConfig); Assert.That(buildConfigResponse, Is.Not.Null); Assert.That(buildConfigResponse.Name, Is.Not.Null); Assert.That(buildConfigResponse.AgentRequirementsResponse, Is.Not.Null); Assert.That(buildConfigResponse.ArtifactDependenciesResponse, Is.Not.Null); Assert.That(buildConfigResponse.Builds, Is.Not.Null); Assert.That(buildConfigResponse.FeaturesResponse, Is.Not.Null); Assert.That(buildConfigResponse.SettingsResponse, Is.Not.Null); Client.DeleteProject(new DeleteProject { Locator = "id:" + response.Id }); }
public void CanCreateTechStacksBuildConfig() { var createProject = new CreateProject { Name = "TestTS" }; var createProjResponse = Client.CreateProject(createProject); var createVcs = new CreateVcsRoot { Name = "GitHub_Test1", VcsName = VcsRootTypes.Git, Project = new CreateVcsRootProject { Id = createProjResponse.Id }, Properties = new CreateVcsRootProperties { Properties = new List<CreateVcsRootProperty> { new CreateVcsRootProperty { Name = "url", Value = "https://github.com/ServiceStackApps/TechStacks.git" }, new CreateVcsRootProperty { Name = "authMethod", Value = "ANONYMOUS" }, new CreateVcsRootProperty { Name = "branch", Value = "refs/heads/master" } } } }; var vcsResponse = Client.CreateVcsRoot(createVcs); var createEmptyBuild = new CreateBuildConfig {Locator = "id:" + createProjResponse.Id, Name = "Build"}; var emptyBuildConfigResponse = Client.CreateBuildConfig(createEmptyBuild); var attachRequest = new AttachVcsEntries { BuildTypeLocator = "id:" + emptyBuildConfigResponse.Id, VcsRootEntries = new List<AttachVcsRootEntry> { new AttachVcsRootEntry { Id = vcsResponse.Id, VcsRoot = new AttachVcsRoot { Id = vcsResponse.Id } } } }; var attachResponse = Client.AttachVcsEntries(attachRequest); //Create build steps var npmStepRequest = new CreateBuildStep { BuildTypeLocator = "id:" + emptyBuildConfigResponse.Id, Name = "NPM Install", TypeId = BuidStepTypes.Npm, StepProperties = new CreateTeamCityProperties { Properties = new List<CreateTeamCityProperty> { new CreateTeamCityProperty { Name = "npm_commands", Value = "install\ninstall bower\ninstall grunt\ninstall grunt-cli" }, new CreateTeamCityProperty { Name = "teamcity.build.workingDir", Value = "src/TechStacks/TechStacks" }, new CreateTeamCityProperty { Name = "teamcity.step.mode", Value = "default" } } } }; var npmStepResponse = Client.CreateBuildStep(npmStepRequest); }
public CreateSpaBuildProjectResponse Post(CreateSpaBuildProject request) { Log.Info(request.ToJson()); var session = SessionAs <AuthUserSession>(); var gitHubToken = session.GetGitHubAccessToken(); var createProjResponse = CreateTeamCityProject(request); var vcsResponse = CreateVcsRoot(request, createProjResponse, gitHubToken); try { if (!request.LocalOnlyApp) { IisHelper.AddSite(request.Name, request.HostName); } else { IisHelper.AddLocalOnlySite(request.Name, request.Port); } } catch (Exception e) { Log.Error(e.Message, e); } var createBuildConfig = new CreateBuildConfig { Locator = "id:" + createProjResponse.Id, Name = "Build and Deploy" }; var buildConfigResponse = TeamCityClient.CreateBuildConfig(createBuildConfig); TeamCityClient.UpdateBuildConfigParameters(new UpdateBuildConfigParameters { Locator = "id:" + buildConfigResponse.Id, Properties = new List <CreateTeamCityBuildParameter> { TeamCityRequestBuilder .CreateTeamCityBuildParameter(buildConfigResponse.Id, "ss.msdeploy.serverAddress", "localhost", "text validationMode='any' display='normal'"), TeamCityRequestBuilder .CreateTeamCityBuildParameter(buildConfigResponse.Id, "ss.msdeploy.iisApp", request.Name, "text validationMode='any' display='normal'") } }); TeamCityClient.UpdateBuildConfigSettings(new UpdateBuildConfigSetting { Locator = "id:" + buildConfigResponse.Id, SettingId = "artifactRules", Value = request.WorkingDirectory + "/wwwroot => " + request.WorkingDirectory + "/wwwroot" }); AttachVcsToProject(buildConfigResponse, vcsResponse); CreateVcsTrigger(buildConfigResponse); CreateNpmInstallStep(request, buildConfigResponse); CreateBowerInstallStep(request, buildConfigResponse); CreateNuGetRestoreStep(request, buildConfigResponse); CreateGruntStep(request, buildConfigResponse); CreateCopyAppSettingsStep(request, buildConfigResponse); CreateWebDeployPackStep(request, buildConfigResponse); CreateWebDeployPushStep(request, buildConfigResponse); TeamCityClient.TriggerBuild(new TriggerBuild { TriggerBuildType = new TriggerBuildType { Id = buildConfigResponse.Id } }); return(new CreateSpaBuildProjectResponse { ProjectId = createProjResponse.Id }); }
public CreateSpaBuildProjectResponse Post(CreateSpaBuildProject request) { Log.Info(request.ToJson()); var session = SessionAs<AuthUserSession>(); var gitHubToken = session.GetGitHubAccessToken(); var createProjResponse = CreateTeamCityProject(request); var vcsResponse = CreateVcsRoot(request, createProjResponse, gitHubToken); try { if(!request.LocalOnlyApp) IisHelper.AddSite(request.Name, request.HostName); else IisHelper.AddLocalOnlySite(request.Name, request.Port); } catch (Exception e) { Log.Error(e.Message, e); } var createBuildConfig = new CreateBuildConfig { Locator = "id:" + createProjResponse.Id, Name = "Build and Deploy" }; var buildConfigResponse = TeamCityClient.CreateBuildConfig(createBuildConfig); TeamCityClient.UpdateBuildConfigParameters(new UpdateBuildConfigParameters { Locator = "id:" + buildConfigResponse.Id, Properties = new List<CreateTeamCityBuildParameter> { TeamCityRequestBuilder .CreateTeamCityBuildParameter(buildConfigResponse.Id, "ss.msdeploy.serverAddress", "localhost", "text validationMode='any' display='normal'"), TeamCityRequestBuilder .CreateTeamCityBuildParameter(buildConfigResponse.Id, "ss.msdeploy.iisApp", request.Name, "text validationMode='any' display='normal'") } }); TeamCityClient.UpdateBuildConfigSettings(new UpdateBuildConfigSetting { Locator = "id:" + buildConfigResponse.Id, SettingId = "artifactRules", Value = request.WorkingDirectory + "/wwwroot => " + request.WorkingDirectory + "/wwwroot" }); AttachVcsToProject(buildConfigResponse, vcsResponse); CreateVcsTrigger(buildConfigResponse); CreateNpmInstallStep(request, buildConfigResponse); CreateBowerInstallStep(request, buildConfigResponse); CreateNuGetRestoreStep(request, buildConfigResponse); CreateGruntStep(request, buildConfigResponse); CreateCopyAppSettingsStep(request, buildConfigResponse); CreateWebDeployPackStep(request, buildConfigResponse); CreateWebDeployPushStep(request, buildConfigResponse); TeamCityClient.TriggerBuild(new TriggerBuild { TriggerBuildType = new TriggerBuildType { Id = buildConfigResponse.Id } }); return new CreateSpaBuildProjectResponse { ProjectId = createProjResponse.Id }; }
public void CanCreateTechStacksBuildConfig() { var createProject = new CreateProject { Name = "TestTS" }; var createProjResponse = Client.CreateProject(createProject); var createVcs = new CreateVcsRoot { Name = "GitHub_Test1", VcsName = VcsRootTypes.Git, Project = new CreateVcsRootProject { Id = createProjResponse.Id }, Properties = new CreateVcsRootProperties { Properties = new List <CreateVcsRootProperty> { new CreateVcsRootProperty { Name = "url", Value = "https://github.com/ServiceStackApps/TechStacks.git" }, new CreateVcsRootProperty { Name = "authMethod", Value = "ANONYMOUS" }, new CreateVcsRootProperty { Name = "branch", Value = "refs/heads/master" } } } }; var vcsResponse = Client.CreateVcsRoot(createVcs); var createEmptyBuild = new CreateBuildConfig { Locator = "id:" + createProjResponse.Id, Name = "Build" }; var emptyBuildConfigResponse = Client.CreateBuildConfig(createEmptyBuild); var attachRequest = new AttachVcsEntries { BuildTypeLocator = "id:" + emptyBuildConfigResponse.Id, VcsRootEntries = new List <AttachVcsRootEntry> { new AttachVcsRootEntry { Id = vcsResponse.Id, VcsRoot = new AttachVcsRoot { Id = vcsResponse.Id } } } }; var attachResponse = Client.AttachVcsEntries(attachRequest); //Create build steps var npmStepRequest = new CreateBuildStep { BuildTypeLocator = "id:" + emptyBuildConfigResponse.Id, Name = "NPM Install", TypeId = BuidStepTypes.Npm, StepProperties = new CreateTeamCityProperties { Properties = new List <CreateTeamCityProperty> { new CreateTeamCityProperty { Name = "npm_commands", Value = "install\ninstall bower\ninstall grunt\ninstall grunt-cli" }, new CreateTeamCityProperty { Name = "teamcity.build.workingDir", Value = "src/TechStacks/TechStacks" }, new CreateTeamCityProperty { Name = "teamcity.step.mode", Value = "default" } } } }; var npmStepResponse = Client.CreateBuildStep(npmStepRequest); }