使用工具集成
您可以使用控制台,API 或 Terraform 来添加,更新和删除工具集成。 您可以在创建开放式工具链时配置支持开发、部署和操作任务的工具集成,也可以添加并配置工具集成,以定制现有工具链。
了解工具与 IBM Cloud for Financial Services 的集成
虽然 Continuous Delivery 和 Toolchain 服务指定为 IBM Cloud for Financial Services Validated,但此指定并不适用于您可以集成到工具链中的所有工具。
未 验证以下工具和工具集成:
- Continuous Delivery 服务的 Git Repos and Issue Tracking 组件。
- IBM Cloud 目录中未指定为“已验证金融服务”的服务的工具集成。
- 不是由 IBM Cloud拥有和操作的第三方,客户或工具和服务的工具集成。
有关哪些工具和工具集成是“已验证的金融服务”的更多信息,请参阅 工具集成。
有关 IBM Cloud for Financial Services 的更多信息,请参阅 IBM Cloud Framework for Financial Services。
Continuous Delivery 服务是在与 IBM Cloud for Financial Services 相同的区域中验证的金融服务。 有关将哪些多专区区域指定为“已验证金融服务”的更多信息,请参阅 将 IBM Cloud 资源仅部署到已核准的多专区区域。
使用控制台添加工具集成
您可以使用控制台将工具集成添加到工具链。
- 从IBM Cloud控制台,单击菜单图标
>平台自动化>工具链。
- 在“工具链”页面,单击工具链打开其“概述”页面。 或者,在应用程序的“应用程序详细信息”页面,点击工具链名称。
- 要查看要添加的工具集成列表,请单击添加。
- 单击要添加的工具集成。
- 输入配置工具集成所需的任何信息。
- 单击创建集成,以向工具链添加工具集成。
添加与 API 的工具集成
您可以使用 API 将工具集成添加到工具链。
-
获取 IAM 不记名令牌。 或者,如果您正在使用 SDK,请 获取 IAM API 密钥,并使用环境变量设置客户机选项。
export CD_TOOLCHAIN_AUTH_TYPE=iam && \ export CD_TOOLCHAIN_APIKEY={iam_api_key} && \ export CD_TOOLCHAIN_URL={base_url}
-
在目标工具链中添加工具集成。
curl -X POST --location --header "Authorization: Bearer {iam_token}" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data '{ "name": "{tool_name}", "tool_type_id": "{tool_type_id}", "parameters": {tool_parameters} }' \ "{base_url}/toolchains/{toolchain_id}/tools"
const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2'); const toolchainService = CdToolchainV2.newInstance(); ... (async() => { const toolPrototypeModel = { toolchainId: {toolchain_id}, toolTypeId: {tool_type_id}, name: {tool_name}, parameters: {tool_parameters} }; const response = await toolchainService.createTool(toolPrototypeModel); })();
import ( "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2" ) ... toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{} toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions) createToolOptions := toolchainClient.NewCreateToolOptions({toolchain_id}, {tool_type_id}) createToolOptions.SetName({tool_name}) createToolOptions.SetParameters({tool_parameters}) tool, response, err := toolchainClient.CreateTool(createToolOptions)
from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2 ... toolchain_service = CdToolchainV2.new_instance() tool = toolchain_service.create_tool( name = {tool_name}, toolchain_id = {toolchain_id}, tool_type_id = {tool_type_id}, parameters = {tool_parameters} )
import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain; import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*; ... CdToolchain toolchainService = CdToolchain.newInstance(); CreateToolOptions createToolOptions = new CreateToolOptions.Builder() .name({tool_name}) .parameters({tool_parameters}) .toolchainId({toolchain_id}) .toolTypeId({tool_type_id}) .build(); Response<ToolchainToolPost> response = toolchainService.createTool(createToolOptions).execute(); ToolchainToolPost tool = response.getResult();
下表列出并描述了先前步骤中使用的每个变量。
变量 | 描述 |
---|---|
{base_url} |
工具链应用程序接口端点 URL。 有关支持值的更多信息,请参阅 端点 URL。 |
{iam_api_key} |
您的 IAM API 密钥。 |
{iam_token} |
有效的 IAM 不记名令牌。 |
{tool_name} |
工具集成的名称。 |
{tool_parameters} |
表示用于创建工具集成的参数的唯一键/值对。 有关每个工具集成支持的参数的更多信息,请参阅 工具集成。 |
{tool_type_id} |
表示工具集成类型的唯一短名称。 有关受支持值的列表,请参阅 工具集成。 |
{toolchain_id} |
要在其中创建工具集成的工具链。 |
添加与 Terraform 的工具集成
您可以使用 Terraform 将工具集成添加到工具链。
-
要安装 Terraform CLI 并为 Terraform 配置 IBM Cloud 提供程序插件,请遵循 IBM Cloud® 上的 Terraform 入门 的教程。
-
创建名为
main.tf
的 Terraform 配置文件。 在此文件中,添加配置以使用 HashiCorp 配置语言 (HCL) 创建资源实例。 有关使用此配置语言的更多信息,请参阅 Terraform 文档。以下示例使用
ibm_cd_toolchain_tool_pipeline
资源创建 Delivery Pipeline 工具集成,其中toolchain_id
是表示要在其中创建工具集成的工具链的 GUID。data "ibm_cd_toolchain" "cd_toolchain" { toolchain_id = {toolchain_id} } resource "ibm_cd_toolchain_tool_pipeline" "cd_pipeline" { toolchain_id = data.ibm_cd_toolchain.cd_toolchain.id parameters { name = "myPipeline" } }
有关工具集成资源的更多信息,请参阅 IBM Cloud Terraform Registry中受支持工具集成资源的完整列表。
-
初始化 Terraform CLI。
terraform init
-
创建 Terraform 执行计划。 此计划总结了为创建工具集成而必须运行的所有操作。
terraform plan
-
应用 Terraform 执行计划。 Terraform 将执行所有必需的操作来创建工具集成。
terraform apply
使用控制台更新工具集成
如果您在创建工具链时推迟了工具集成的配置,则其卡片上会显示一个“配置”按钮。 如果在创建工具链时配置了工具集成,则可以使用控制台更新配置设置。
- 从IBM Cloud控制台,单击菜单图标
>平台自动化>工具链。
- 在“工具链”页面上,单击包含要更新的工具集成的工具链以打开其“概述”页面。 或者,在应用程序的“应用程序详细信息”页面,点击工具链名称。
- 如果您需要全新配置工具集成,请在其卡上,单击配置。
- 完成配置工具集成时,单击保存集成。
- 如果需要更新工具集成的配置,请单击 操作 图标
> 配置。
- 完成更新设置时,单击保存集成。
使用 API 更新工具集成
如果在创建工具链时配置了工具集成,则可以使用 API 更新配置设置。
-
获取 IAM 不记名令牌。 或者,如果您正在使用 SDK,请 获取 IAM API 密钥,并使用环境变量设置客户机选项。
export CD_TOOLCHAIN_AUTH_TYPE=iam && \ export CD_TOOLCHAIN_APIKEY={iam_api_key} && \ export CD_TOOLCHAIN_URL={base_url}
-
通过使用工具链的标识,查找工具集成的标识。
-
更新目标工具链中的工具集成。
curl -X PATCH --location --header "Authorization: Bearer {iam_token}" \ --header "Accept: application/json" \ --header "Content-Type: application/merge-patch+json" \ --data '{ "name": "{new_tool_name}", "parameters": {new_tool_parameters} }' \ "{base_url}/toolchains/{toolchain_id}/tools/{tool_id}"
const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2'); const toolchainService = CdToolchainV2.newInstance(); ... (async() => { const toolPatchModel = { toolchainId: {toolchain_id}, toolId: {tool_id}, name: {new_tool_name}, parameters: {new_tool_parameters} }; const response = await toolchainService.updateTool(toolPatchModel); })();
import ( "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2" ) ... toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{} toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions) toolPatchModel := map[string]interface{}{ "name": {new_tool_name}, "parameters": {new_tool_parameters}, } updateToolOptions := toolchainClient.NewUpdateToolOptions({toolchain_id}, {tool_id}, toolPatchModel) tool, response, err := toolchainClient.UpdateTool(updateToolOptions)
from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2 ... toolchain_service = CdToolchainV2.new_instance() tool = toolchain_service.update_tool( toolchain_id = {toolchain_id}, tool_id = {tool_id}, toolchain_tool_prototype_patch = { "name": {new_tool_name}, "parameters": {new_tool_parameters} } )
import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain; import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*; ... CdToolchain toolchainService = CdToolchain.newInstance(); HashMap<String,Object> toolchainToolPrototypePatch = new HashMap<>(); toolchainToolPrototypePatch.put("name", {new_tool_name}); toolchainToolPrototypePatch.put("parameters", {new_tool_parameters}); UpdateToolOptions updateToolOptions = new UpdateToolOptions.Builder() .toolchainId({toolchain_id}) .toolId({tool_id}) .toolchainToolPrototypePatch(toolchainToolPrototypePatch) .build(); Response<ToolchainToolPatch> response = toolchainService.updateTool(updateToolOptions).execute(); ToolchainToolPatch tool = response.getResult();
下表列出并描述了先前步骤中使用的每个变量。
变量 | 描述 |
---|---|
{base_url} |
工具链应用程序接口端点 URL,例如 https://api.us-south.devops.cloud.ibm.com/toolchain/v2 。 有关该端点 URL 的更多信息,包括值列表,请参阅 端点 URL。 |
{iam_api_key} |
您的 IAM API 密钥。 |
{iam_token} |
有效的 IAM 不记名令牌。 |
{new_tool_name} |
工具集成的新名称。 |
{new_tool_parameters} |
表示用于更新工具集成的参数的唯一键/值对。 要查看每个工具集成的参数列表,请参阅 工具集成。 |
{tool_id} |
要更新的工具集成的标识。 |
{toolchain_id} |
存在工具集成的工具链的标识。 |
使用 Terraform 更新工具集成
如果在创建工具链时配置了工具集成,则可以使用 Terraform 更新配置设置。
-
安装 Terraform CLI 并通过遵循 IBM Cloud 上的 Terraform 入门教程为 Terraform 配置 IBM Cloud 提供程序插件。
-
使用用于创建工具集成的 Terraform 配置文件。 如果未使用 Terraform 创建工具集成,请运行
terraform import
以避免创建其他工具集成。 有关使用此配置语言的更多信息,请参阅 Terraform 文档。以下示例使用
ibm_cd_toolchain_tool_pipeline
资源更新现有 Delivery Pipeline 工具集成的名称,其中toolchain_id
是表示存在工具集成的工具链的 GUID。data "ibm_cd_toolchain" "cd_toolchain" { toolchain_id = {toolchain_id} } resource "ibm_cd_toolchain_tool_pipeline" "cd_pipeline" { toolchain_id = data.ibm_cd_toolchain.cd_toolchain.id parameters { name = "myUpdatedPipelineName" } }
有关工具集成资源的更多信息,请参阅 IBM Cloud Terraform Registry中受支持工具集成资源的完整列表。
-
初始化 Terraform CLI。
terraform init
-
创建 Terraform 执行计划。 此计划总结了为修改工具集成而必须运行的所有操作。
terraform plan
-
应用 Terraform 执行计划。 Terraform 将执行修改工具集成所需的所有操作。
terraform apply
使用控制台删除工具集成
您可以使用控制台从工具链中删除工具集成。 如果从工具链删除工具集成,那么该删除操作无法撤销。
- 从IBM Cloud控制台,单击菜单图标
>平台自动化>工具链。
- 在“工具链”页面,单击工具链打开其“概述”页面。 或者,在应用程序的“应用程序详细信息”页面,点击工具链名称。
- 在要删除的工具集成上,单击 操作 图标
> 删除。
- 单击删除以确认。
删除与 API 的工具集成
您可以从工具链中删除工具与 API 的集成。 如果从工具链删除工具集成,那么该删除操作无法撤销。
-
获取 IAM 不记名令牌。 或者,如果您正在使用 SDK,请 获取 IAM API 密钥,并使用环境变量设置客户机选项。
export CD_TOOLCHAIN_AUTH_TYPE=iam && \ export CD_TOOLCHAIN_APIKEY={iam_api_key} && \ export CD_TOOLCHAIN_URL={base_url}
-
通过使用工具链的标识,查找工具集成的标识。
-
删除目标工具链中的工具集成。
curl -X DELETE --location --header "Authorization: Bearer {iam_token}" \ "{base_url}/toolchains/{toolchain_id}/tools/{tool_id}"
const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2'); const toolchainService = CdToolchainV2.newInstance(); ... (async() => { const response = await toolchainService.deleteTool({ toolchainId: {toolchain_id}, toolId: {tool_id} }); })();
import ( "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2" ) ... toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{} toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions) deleteToolOptions := toolchainClient.NewDeleteToolOptions({toolchain_id}, {tool_id}) response, err := toolchainClient.DeleteTool(deleteToolOptions)
from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2 ... toolchain_service = CdToolchainV2.new_instance() response = toolchain_service.delete_tool( toolchain_id = {toolchain_id}, tool_id = {tool_id} )
import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.CdToolchain; import com.ibm.cloud.continuous_delivery.cd_toolchain.v2.model.*; ... CdToolchain toolchainService = CdToolchain.newInstance(); DeleteToolOptions deleteToolOptions = new DeleteToolOptions.Builder() .toolchainId({toolchain_id}) .toolId({tool_id}) .build(); Response<Void> response = toolchainService.deleteTool(deleteToolOptions).execute();
下表列出并描述了先前步骤中使用的每个变量。
变量 | 描述 |
---|---|
{base_url} |
工具链应用程序接口端点 URL。 有关该端点 URL 的更多信息,包括值列表,请参阅 端点 URL。 |
{iam_api_key} |
您的 IAM API 密钥。 |
{iam_token} |
有效的 IAM 不记名令牌。 |
{tool_id} |
要删除的工具集成的 ID。 |
{toolchain_id} |
存在工具集成的工具链的标识。 |
删除与 Terraform 的工具集成
您可以使用 Terraform 从工具链中删除工具集成。 如果从工具链删除工具集成,那么该删除操作无法撤销。
-
要安装 Terraform CLI 并为 Terraform 配置 IBM Cloud 提供程序插件,请遵循 IBM Cloud 上的 Terraform 入门 的教程。
-
使用用于创建工具集成的 Terraform 配置文件。 从配置文件中注释或除去工具集成资源。
-
初始化 Terraform CLI。
terraform init
-
创建 Terraform 执行计划。 此计划汇总了为删除工具集成而必须运行的所有操作。
terraform plan
-
应用 Terraform 执行计划。 Terraform 将执行删除工具集成所需的所有操作。
terraform apply
工具集成
Continuous Delivery 服务支持多个工具集成。
虽然 Continuous Delivery 和 Toolchain 服务指定为 IBM Cloud for Financial Services Validated,但此指定并不适用于您可以集成到工具链中的所有工具。 下表指示哪些工具集成和工具在与 Continuous Delivery 工具链配合使用时指定为 IBM Cloud for Financial Services Validated。
如果要使用 Continuous Delivery 工具链 API 来创建工具集成,请将 API 请求中的 tool_type_id
参数设置为下表中列出的工具集成的 工具类型标识 值。
工具集成 | 工具类型标识 | 已验证金融服务 |
---|---|---|
App Configuration | 应用程序配置 | |
Artifactory | Artifactory | |
Bitbucket | 比特布克特吉特 | |
Delivery Pipeline | 管道 | |
Delivery Pipeline 专用工作程序 | 私人工作者 | |
DevOps Insights | 德拉塞维切代理 | |
Event Notifications | 事件通知 | |
Git Repos and Issue Tracking | 霍斯特吉特 | |
云 Object Storage | 云对象存储 | |
GitHub | 吉图布综合公司 | |
GitLab | GitLab | |
HashiCorp 保险库文件 | 哈希科普金库 | |
Jenkins | Jenkins | |
Jira | JIRA | |
Key Protect | 密钥保护 | |
Nexus | Nexus | |
其他工具 | 定制工具 | |
PagerDuty | PagerDuty | |
Rational Team Concert | 理性队演唱会 | |
Sauce Labs | 绍切拉布 | |
Secrets Manager | 分泌器管理器 | |
Security and Compliance Center | 安全合规 | |
Slack | 空隙 | |
SonarQube | sonarqube |
如果您想要在 IBM Cloud Public 中开始使用源代码进行开发,请先配置 GitHub 工具集成或 Git Repos and Issue Tracking 工具集成,然后再配置 Delivery Pipeline。