【问题标题】:Is there a way to automate TeamCity project creation?有没有办法自动创建 TeamCity 项目?
【发布时间】:2017-05-17 07:05:08
【问题描述】:

我正在使用 TeamCity 9.x。

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

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

【问题讨论】:

    标签: teamcity build-automation devops teamcity-9.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 服务器 URL。

    或者,可以使用 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>
    

    【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 2020-05-19
      • 1970-01-01
      • 2012-04-15
      • 2010-12-04
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多