Creación de cadenas de herramientas con Git

Continuous Delivery dejará de utilizarse en las siguientes regiones el 12 de febrero de 2027: au-syd, ca-mon, ca-tor, us-east. Code Risk Analyzer y DevOps Insights también quedarán obsoletos en todas las regiones en esa fecha. Sin embargo, si una región no tiene un uso activo de estas funciones, es posible que las funciones de esa región se suspendan antes y dejen de aceptar nuevas instancias. Más información

Puede utilizar una plantilla que contenga una integración de herramientas de GitHub o Git Repos and Issue Tracking como punto de partida para crear una cadena de herramientas a la que pueda añadir repositorios Git. Como alternativa, puede empezar con una cadena de herramientas vacía o con una cadena de herramientas existente y, a continuación, añadirle una integración de herramientas Git Repos and Issue Tracking o GitHub.

Para ver qué plantillas de cadenas de herramientas contienen las integraciones de herramientas de GitHub o Git Repos and Issue Tracking, consulte Disponibilidad de cadenas de herramientas, plantillas y guías de aprendizaje.

Creación de una cadena de herramientas a partir de una plantilla con Git Repos and Issue Tracking o GitHub utilizando la consola

Puede utilizar una plantilla como punto de partida para crear una cadena de herramientas que incluya una integración de herramientas Git Repos and Issue Tracking o GitHub. Más información sobre cómo utilizar las plantillas del Método Garaje IBM Cloud.

  1. Inicie sesión en IBM Cloud.

  2. En la consola IBM Cloud, haga clic en el icono de menú hamburguesa > Automatización de la plataforma > Cadenas de herramientas.

  3. En el panel de control de DevOps, en la página Cadenas de herramientas, pulse Crear una cadena de herramientas.

  4. En la página Crear una cadena de herramientas, pulse una plantilla de cadena de herramientas.

  5. Revise el diagrama de la cadena de herramientas que se dispone a crear. El diagrama muestra cada integración de herramientas en la fase del ciclo de vida correspondiente en la cadena de herramientas.

  6. Revise la información predeterminada de los valores de la cadena de herramientas:

    • El nombre de la cadena de herramientas la identifica en IBM Cloud. Si desea utilizar otro nombre, cambie el nombre de la cadena de herramientas.
    • La región en la que se va crear la cadena de herramientas. Si desea utilizar otra región, selecciónela en la lista de regiones disponibles.
    • Grupo de recursos en el que crear la cadena de herramientas. Si quiere utilizar un grupo de recursos distinto, selecciónelo en la lista de grupos de recursos disponibles.
    • El proveedor del repositorio de origen, por ejemplo GitHub o GitLab. Si desea utilizar otro proveedor de origen, selecciónela en la lista de repositorios disponibles.
  7. En la sección Integraciones de herramientas, seleccione las integraciones de herramientas que desee configurar para su cadena de herramientas. Para obtener más información sobre cómo configurar las integraciones de herramientas, consulte Configurar integraciones de herramientas.

  8. Pulse Crear. Para configurar la cadena de herramientas, se ejecutan varios pasos automáticamente. Las integraciones de herramientas configuradas difieren en función de la plantilla de cadena de herramientas seleccionada. Por ejemplo, si crea una cadena de herramientas de microservicios en IBM Cloud público, se ejecutan estos pasos:

    • Se crea la cadena de herramientas.
    • Si ha configurado Delivery Pipeline, los conductos se crean y se activan.
    • Si ha configurado Sauce Labs, la cadena de herramientas se configura para añadir trabajos de prueba de Sauce Labs a los conductos.
    • Si configuró Event Notifications, la cadena de herramientas está configurada para enviar notificaciones de eventos al servicio Event Notifications que especificó.
    • Si ha configurado PagerDuty, la cadena de herramientas se configura para enviar notificaciones de alerta al servicio PagerDuty que ha especificado.
    • Si ha configurado Slack, la cadena de herramientas se configura para enviar notificaciones sobre el estado de despliegue al canal Slack que ha especificado.
    • Si ha configurado la integración de una herramienta de código fuente como GitHub, el repositorio de ejemplo de GitHub se clona en su cuenta de GitHub.

    Ahora puede distribuir notificaciones de eventos mediante la integración de la herramienta Event NotificationsIBM Cloud Event Notifications es el método preferido para distribuir notificaciones a PagerDuty y otros canales de comunicación como Slack, correo electrónico, SMS, notificaciones push, webhook, Microsoft® Teams, ServiceNow, y IBM Cloud Functions. Para obtener más información sobre el uso de Event Notifications, consulte Activación de notificaciones de eventos para cadenas de herramientas.

Creación de una cadena de herramientas a partir de una plantilla con Git Repos and Issue Tracking o GitHub con la API

Sólo puede crear una cadena de herramientas a partir de una plantilla utilizando la consola. Para ver los pasos para utilizar la consola, vaya a las instrucciones de la interfaz de usuario.

Para obtener más información sobre cómo crear una cadena de herramientas con la API en lugar de utilizar una plantilla, consulte Adición de la integración de herramientas de Git a una cadena de herramientas existente con la API.

Creación de una cadena de herramientas a partir de una plantilla con Git Repos and Issue Tracking o GitHub con Terraform

Sólo puede crear una cadena de herramientas a partir de una plantilla utilizando la consola. Para ver los pasos para utilizar la consola, vaya a las instrucciones de la interfaz de usuario.

Para obtener más información sobre cómo crear una cadena de herramientas con Terraform en lugar de utilizar una plantilla, consulte Adición de la integración de herramientas de Git a una cadena de herramientas existente con Terraform.

Adición de la integración de herramientas de Git a una cadena de herramientas existente utilizando la consola

Puede añadir una integración de herramientas Git a cualquier cadena de herramientas existente utilizando la consola.

  1. Inicie sesión en IBM Cloud.
  2. En la consola IBM Cloud, haga clic en el icono de menú icono de hamburguesa y seleccione Lista de recursos.
  3. En la lista de recursos, expanda la sección Herramientas de desarrollador.
  4. Pulse una cadena de herramientas a la que desee añadir una integración de herramientas Git o cree una cadena de herramientas. Para obtener información sobre la creación de cadenas de herramientas, consulte Creación de cadenas de herramientas.
  5. En la página Descripción general de la cadena de herramientas, haga clic en Añadir herramienta y, a continuación, seleccione GitHub o Git Repos and Issue Tracking para añadir cualquiera de estas integraciones de herramientas a su cadena de herramientas.
  6. En función de la integración de herramientas de Git que seleccione, puede configurar la integración de herramientas de GitHub o puede configurar la integración de herramientas deGit Repos and Issue Tracking.

Adición de la integración de herramientas de Git a una cadena de herramientas existente con la API

Puede añadir una integración de herramientas Git a cualquier cadena de herramientas existente con la API.

  1. Obtener una señal portadora de IAM. De forma alternativa, si utiliza un SDK, obtenga una clave de API de IAM y establezca las opciones de cliente utilizando variables de entorno.

    export CD_TOOLCHAIN_AUTH_TYPE=iam && \
    export CD_TOOLCHAIN_APIKEY={iam_api_key} && \
    export CD_TOOLCHAIN_URL=https://api.{region}.devops.cloud.ibm.com/toolchain/v2
    
  2. Determine la región y el ID de la cadena de herramientas a la que desea añadir la integración de herramientas de Git.

  3. Añada la integración de la herramienta Git a la cadena de herramientas. El ejemplo siguiente muestra cómo añadir una integración de herramienta Git que enlaza con un repositorio existente en github.com. También puede añadir una integración de herramienta Git con instrucciones para crear, bifurcar o clonar un nuevo repositorio. Y puedes añadir integraciones de herramientas para otros servidores de GitHub, GitLab, o Bitbucket.

    curl -X POST \
      https://api.{region}.devops.cloud.ibm.com/toolchain/v2/toolchains/{toolchain_id}/tools \
      -H 'Authorization: Bearer {token}' \
      -H 'Accept: application/json` \
      -H 'Content-Type: application/json' \
        -d '{
        "tool_type_id": "githubconsolidated",
        "name": "{tool_integration_name}",
        "parameters": {
          "type": "link",
          "git_id": "github",
          "repo_url": "https://github.com/{git_org}/{git-repo}.git",
          "has_issues": true
        }
      }'
    
    const CdToolchainV2 = require('@ibm-cloud/continuous-delivery/cd-toolchain/v2');
    const toolchainService = CdToolchainV2.newInstance();
    ...
    (async() => {
       const gitToolModel = {
          toolchainId: {toolchain_id},
          toolTypeId: 'githubconsolidated',
          name: {tool_integration_name},
          parameters: {
             type: 'link',
             git_id: 'github',
             repo_url: 'https://github.com/{git_org}/{git-repo}.git',
             has_issues: true,
    
          }
       };
       const gitTool = await toolchainService.createTool(gitToolModel);
    })();
    
    import (
    	   "github.com/IBM/continuous-delivery-go-sdk/cdtoolchainv2"
    )
    ...
    toolchainClientOptions := &cdtoolchainv2.CdToolchainV2Options{}
    toolchainClient, err := cdtoolchainv2.NewCdToolchainV2UsingExternalConfig(toolchainClientOptions)
    createGitToolOptions := toolchainClient.NewCreateToolOptions({toolchain_id}, "githubconsolidated")
    gitParameters := map[string]interface{}{
     "type": "link",
     "git_id": "github",
     "repo_url": "https://github.com/{git_org}/{git-repo}.git",
     "has_issues": true,
    }
    createGitToolOptions.SetName({tool_integration_name})
    createGitToolOptions.SetParameters(gitParameters)
    gitTool, response, err := toolchainClient.CreateTool(createGitToolOptions)
    
    from ibm_continuous_delivery.cd_toolchain_v2 import CdToolchainV2
    ...
    toolchain_service = CdToolchainV2.new_instance()
    git_parameters = {
       "type": "link",
       "git_id": "github",
       "repo_url": "https://github.com/{git_org}/{git-repo}.git",
       "has_issues": True
    }
    git_tool = toolchain_service.create_tool(
       name = {tool_integration_ame},
       toolchain_id = {toolchain_id},
       tool_type_id = "githubconsolidated",
       parameters = git_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> gitParameters = new HashMap<>();
    gitParameters.put("type", "link");
    gitParameters.put("git_id", "github");
    gitParameters.put("repo_url", "https://github.com/{git_org}/{git-repo}.git");
    gitParameters.put("has_issues", true);
    CreateToolOptions createGitToolOptions = new CreateToolOptions.Builder()
       .name({tool_integration_name})
       .parameters(gitParameters)
       .toolchainId({toolchain_id})
       .toolTypeId("githubconsolidated")
       .build();
    Response<ToolchainToolPost> response = toolchainService.createTool(createGitToolOptions).execute();
    ToolchainToolPost gitTool = response.getResult();
    

La tabla siguiente lista y describe cada una de las variables que se utilizan en los pasos anteriores.

Variables para añadir la integración de la herramienta Git con la API
Variable Descripción
{git_org} La organización en github.com que contiene el repositorio.
{git_repo} El repositorio en github.com para integrar en la cadena de herramientas.
{iam_api_key} Su clave de API IAM.
{region} La región en la que reside la cadena de herramientas. Por ejemplo, us-south.
{tool_integration_name} Un nombre para la integración de herramientas.
{toolchain_id} El ID de la cadena de herramientas a la que añadir la integración de herramientas.
{token} Un token de portador IAM válido.

Para obtener más información sobre cada una de las integraciones de herramientas de Git, incluidos los parámetros adicionales que puede configurar, consulte los temas siguientes:

Adición de la integración de herramientas de Git a una cadena de herramientas existente con Terraform

Puede añadir una integración de herramientas Git a cualquier cadena de herramientas existente con Terraform.

  1. Para instalar la CLI de Terraform y configurar el plug-in de proveedor de IBM Cloud para Terraform, siga la guía de aprendizaje Cómo empezar con Terraform en IBM Cloud.

  2. Localice el archivo de Terraform (por ejemplo, main.tf) que contiene el bloque de recursos para la cadena de herramientas a la que desea añadir la integración de herramientas de Git. En este archivo, añada la configuración para crear la integración de herramientas.

    El ejemplo siguiente crea la cadena de herramientas si no existe y, a continuación, añade una integración de herramientas Git que enlaza con un repositorio existente en github.com utilizando el recurso ibm_cd_toolchain_tool_githubconsolidated. También puede añadir una integración de herramienta Git con instrucciones para crear, bifurcar o clonar un nuevo repositorio. Y puedes añadir integraciones de herramientas para otros servidores de GitHub, GitLab, o Bitbucket.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    
    resource "ibm_cd_toolchain" "cd_toolchain" {
      name              = "my toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    
    resource "ibm_cd_toolchain_tool_githubconsolidated" "my-github-tool-integration" {
      toolchain_id = ibm_cd_toolchain.cd_toolchain.id
      initialization {
        git_id = "github"
        repo_url = "https://github.com/my-org/my-repo.git"
        type = "link"
        auth_type = "pat"
        api_token = "<TOKEN>"
      }
      parameters {
        has_issues = true
      }
    }
    

    Donde <TOKEN> representa una señal de acceso personal (PAT) que pertenece a la cuenta de GitHub que otorga acceso al repositorio de destino.

  3. Inicialice la CLI de Terraform.

    terraform init
    
  4. Cree un plan de ejecución de Terraform. Este plan resume todas las acciones que se deben ejecutar para añadir la integración de la herramienta DevOps Insights a la cadena de herramientas.

    terraform plan
    
  5. Aplique el plan de ejecución de Terraform. Terraform realiza todas las acciones necesarias para añadir la integración de la herramienta DevOps Insights a la cadena de herramientas.

    terraform apply
    

Para obtener más información sobre cada uno de los recursos de integración de la herramienta Git, incluidos los parámetros adicionales que puede configurar, consulte los detalles de referencia de argumentos en la documentación del registro de Terraform:

Para obtener más información sobre cómo utilizar Terraform con Continuous Delivery, consulte Configuración de Terraform para Continuous Delivery.