有没有办法自动化TeamCity项目创建?

时间:2017-05-17 07:05:08

标签: teamcity build-automation devops teamcity-9.0

我正在使用TeamCity 9.x.

我必须在一个主项目下创建400个子项目。 有没有办法自动化这些项目创作?

注意:每个子项目都有一个唯一的VCS URL。

2 个答案:

答案 0 :(得分:1)

TeamCity REST API非常适合做这样的事情。

要创建新项目,您可以使用curl发送包含新项目的XML描述的POST请求:

curl -v -u USER:PASSWORD http://teamcity:8111/app/rest/projects --header "Content-Type: application/xml" --data-binary
"<newProjectDescription name='New Project Name' id='newProjectId'><parentProject locator='id:project1'/></newProjectDescription>"

其中USERPASSWORD是有效TeamCity用户的凭据, teamcity:8111是TeamCity服务器网址。

或者,可以使用JSON。应提供“Content-Type:application / json”标题,请求正文可能类似于

{
  "name":"New Project Name",
  "id":"newProjectId0000",
  "parentProject": {
    "locator":"id:FooProject"
  }
}

要创建新的VCS根目录,您应该将VCS根XML或JSON(如针对VCS根详细信息的GET请求检索的那样)发布到http://teamcity:8111/httpAuth/app/rest/vcs-roots。一个示例XML:

<vcs-root id="vcsRoot_id_whatever" name="auto-generated-1" vcsName="jetbrains.git">
<project id="FooProject"/>
<properties count="10">
<property name="agentCleanFilesPolicy" value="ALL_UNTRACKED"/>
<property name="agentCleanPolicy" value="ON_BRANCH_CHANGE"/>
<property name="branch" value="refs/heads/master"/>
<property name="teamcity:branchSpec" value="+:*"/>
<property name="url" value="https://github.com/JetBrains/teamcity-docker-agent.git"/>
<property name="usernameStyle" value="USERID"/>
</properties>
</vcs-root>

答案 1 :(得分:0)

旧版本是使用TeamCity REST Api。但是现在,捷特人推出了新的Kotlin DSL。

您将项目设置设置为使用Kotlin类型的Vcs设置。

然后,您只需要使用编程技能来创建代码,即可从Kotlin dsl创建所有项目。

文档中的更多信息:https://confluence.jetbrains.com/display/TCD10/Kotlin+DSL