Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Crea y administra activadores de compilación

Un activador de Cloud Build inicia una compilación de forma automática cada vez que realizas algún cambio en el código fuente. Puedes configurar el activador para que compile el código a partir de cualquier cambio que se realice en el repositorio de código fuente o solo a partir de los cambios que coincidan con ciertos criterios.

En esta página, se explica cómo conectarse a los repositorios de código fuente, como GitHub y Bitbucket, y cómo crear activadores de compilaciones para compilar el código en los repositorios.

Antes de comenzar

  • Habilita la API Cloud Build.

    Habilita la API

Conéctate a repositorios de código fuente

Primero debes conectar Cloud Build a tu repositorio de código fuente para poder compilar el código en ese repositorio. Tus repositorios en Cloud Source Repositories están conectados a Cloud Build de forma predeterminada. Puedes crear activadores directamente para tus repositorios en Cloud Source Repositories sin tener que conectarte de forma manual a ellos.

Si conectas un repositorio externo, como uno alojado en GitHub o Bitbucket, necesitarás permisos de nivel de administrador en el repositorio para conectar inicialmente tu repositorio a Cloud Build. Los permisos de administrador no son necesarios para crear activadores en un repositorio que ya está conectado a Cloud Build.

Completa los siguientes pasos para conectarte a GitHub o Bitbucket:

  1. Abre la página Activadores en Google Cloud Console.

    Abrir la página Activadores

  2. Selecciona tu proyecto y haz clic en Abrir.

  3. Haz clic en Conectar repositorio.

  4. Selecciona el repositorio en el que almacenaste el código fuente.

    Si seleccionas GitHub (duplicado) o Bitbucket (duplicado) como tu repositorio de código fuente, Cloud Build duplica el repositorio en Cloud Source Repositories y usa el repositorio duplicado para todas sus operaciones.

  5. Haga clic en Continue.

  6. Autentica el repositorio de código fuente con tu nombre de usuario y contraseña.

  7. En la lista de repositorios disponibles, selecciona el repositorio que deseas y, luego, haz clic en Conectar.

    En el caso de los repositorios externos, como GitHub y Bitbucket, debes tener permisos de nivel de propietario para el proyecto de Cloud con el que estás trabajando.

  8. Haz clic en Crear un activador para proceder a la creación de un activador de compilación que automatice las compilaciones del código fuente en el repositorio o haz clic en Listo.

Crea un activador de compilación

Console

  1. Abre la página Activadores en Google Cloud Console.

    Abrir la página Activadores

  2. Selecciona tu proyecto en el menú desplegable del selector de proyectos en la parte superior de la página.

  3. Haz clic en Abrir.

  4. Haz clic en Crear activador.

  5. Ingresa las siguientes opciones de configuración del activador:

    • Nombre: Ingresa un nombre para el activador.

    • Descripción (opcional): Ingresa una descripción para el activador.

    • Evento: Selecciona el evento de repositorio que invoca al activador.

      • Enviar a una rama: Configura el activador para que inicie compilaciones a partir de las confirmaciones en una rama en particular.

      • Enviar etiqueta nueva: Configura el activador para que inicie compilaciones a partir de las confirmaciones que contengan una etiqueta específica.

      • Solicitud de extracción (solo en apps de GitHub): Configura el activador para que inicie compilaciones a partir de confirmaciones de solicitud de extracción. Esta función solo está disponible si creas un activador de apps de GitHub. Si deseas obtener información sobre cómo crear un activador de app de GitHub, consulta Crea activadores de apps de GitHub.

    • Fuente: Selecciona el repositorio, y la rama o etiqueta correspondiente para buscar eventos.

      Cuando se ejecute la compilación, el contenido de tu repositorio se copiará en /workspace, el directorio de trabajo predeterminado que usa Cloud Build. Obtén más información sobre los directorios de trabajo en la página de descripción general de la configuración de compilación.

      • Rama o Etiqueta: Especifica una expresión regular con la rama o el valor de la etiqueta que deben coincidir. Para obtener información acerca de la sintaxis de expresión regular aceptable, consulta Sintaxis RE2.
    • Archivos incluidos (opcional): Los cambios que afecten al menos a uno de estos archivos invocarán una compilación. Puedes usar las strings glob para especificar varios archivos con caracteres comodín. Los caracteres comodín aceptables incluyen los caracteres compatibles con Go Match, ** y alternación.

    • Archivos ignorados (opcional): Los cambios que solo afectan a los archivos ignorados no invocarán una compilación. Puedes usar las strings glob para especificar varios archivos con caracteres comodín. Los caracteres comodín aceptables incluyen los caracteres compatibles con Go Match, ** y alternación.

      Si especificas un archivo en Archivos incluidos y Archivos ignorados, los cambios en ese archivo no invocarán una compilación. Supongamos que especificas **/README.md en Archivos ignorados para ignorar README.md en cualquier directorio y especificas src/* en Archivos incluidos a fin de comenzar una compilación a partir de los cambios en cualquier archivo de la carpeta src/. Ahora bien, si realizas un cambio en src/README.md, Cloud Build no iniciará una compilación. Cada vez que envías un cambio al código fuente, Cloud Build revisa los archivos que se modificaron y que están especificados como archivos incluidos y archivos ignorados a fin de determinar si se debe invocar una compilación:

      • Si envías un cambio a tu repositorio sobre una rama existente, Cloud Build observa los archivos modificados entre la confirmación recién enviada y la confirmación a la que apuntaba la rama antes.
      • Si envías un cambio a una rama recién creada, Cloud Build trata todos los archivos del repositorio como archivos modificados.
      • Si borras una rama, Cloud Build no inicia una compilación.
    • Configuración: Selecciona el archivo de configuración de compilación ubicado en tu repositorio remoto o crea un archivo de configuración de compilación intercalado para usarlo en tu compilación.

      • Tipo: selecciona el tipo de configuración que se usará para la compilación.
      • Archivo de configuración de Cloud Build (yaml o json): usa un archivo de configuración de compilación para la configuración.
      • Dockerfile: usa un Dockerfile para la configuración.
      • Ubicación: especifica la ubicación de la configuración.
      • Repositorio Si tu archivo de configuración está ubicado en tu repositorio remoto, proporciona la ubicación de laarchivo de configuración de compilación o elDockerfile y un nombre para la imagen resultante. Si tu configuración es una Dockerfile, puedes proporcionar un tiempo de espera opcional para tu compilación. Cuando hayas proporcionado el Dockerfile y el nombre de la imagen, verás una vista previa del comando docker build que se ejecutará en la compilación.
      • En línea: Si seleccionaste Archivo de configuración de Cloud Build (yaml o json) como tu opción de configuración, puedes especificar tu configuración de compilación intercalada. Haz clic en Abrir editor para abrir tu archivo de configuración de compilación en Google Cloud Console con la sintaxis YAML o JSON. Haz clic en Listo para guardar la configuración de compilación.

    • Variables de sustitución (opcional): Si seleccionaste el archivo de configuración de Cloud Build como la opción de configuración de compilación, puedes definir variables de sustitución específicas del activador mediante este campo. Por ejemplo, supongamos que creas varios activadores y que cada uno de ellos implementa tu app en un entorno específico. Puedes especificar que la app se implemente en un entorno del archivo de configuración de compilación y, luego, usar este campo para definir variables de sustitución que especifiquen en qué entorno debe implementarse este activador. Para obtener información sobre cómo especificar valores de sustitución en archivos de configuración de compilación, consulta Sustituye valores de variable.

  6. Haz clic en Crear para guardar el activador de compilación.

gcloud

Si tu código fuente está en Cloud Source Repositories, usa este comando para crear un activador:

    gcloud beta builds triggers create cloud-source-repositories \
    --repo=REPO_NAME \
    --branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
    --build-config=BUILD_CONFIG_FILE \

En el ejemplo anterior, se ilustra lo siguiente:

  • REPO_NAME es el nombre del repositorio.
  • BRANCH_PATTERN es el nombre de la rama en tu repositorio para invocar la compilación.
  • TAG_PATTERN es el nombre de la etiqueta en tu repositorio para invocar la compilación.
  • BUILD_CONFIG_FILE es la ruta de acceso al archivo de configuración de compilación.

Si deseas obtener una lista completa de las marcas, consulta la referencia de gcloud sobre cómo crear activadores para Cloud Source Repositories.

Si tu código fuente está en GitHub, usa este comando para crear un activador:

    gcloud beta builds triggers create github \
    --repo-name=REPO_NAME \
    --repo-owner=REPO_OWNER \
    --branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
    --build-config=BUILD_CONFIG_FILE \

En el ejemplo anterior, se ilustra lo siguiente:

  • REPO_NAME es el nombre del repositorio.
  • REPO_OWNER es el nombre de usuario del propietario del repositorio.
  • BRANCH_PATTERN es el nombre de la rama en tu repositorio para invocar la compilación.
  • TAG_PATTERN es el nombre de la etiqueta en tu repositorio para invocar la compilación.
  • BUILD_CONFIG_FILE es la ruta de acceso al archivo de configuración de compilación.

Si deseas obtener una lista completa de las marcas, consulta la referencia de gcloud sobre cómo crear activadores para GitHub.

Después de ejecutar el comando de gcloud para crear un activador mediante Cloud Source Repositories o GitHub, debería aparecer un resultado similar al siguiente:

  NAME         CREATE_TIME                STATUS
  trigger-001  2019-10-30T20:45:03+00:00

Prueba un activador de compilación

Para probar de forma manual un activador de compilación, sigue estos pasos:

  1. Abre la página Activadores en Google Cloud Console.

    Abrir la página Activadores

  2. Encuentra tu activador en la lista y haz clic en Ejecutar activador.

Omite un activador de compilación

En algunos casos, es posible que desees realizar un cambio en el código fuente, pero sin que esto invoque una compilación. Por ejemplo, es posible que no quieras que se invoque una compilación cuando actualizas la documentación o los archivos de configuración.

En estos casos, puedes incluir [skip ci] o [ci skip] en el mensaje de confirmación, y no se invocará una compilación.

Si deseas ejecutar una compilación a partir de esa confirmación más tarde, usa el botón Ejecutar activador en la página Activadores.

Incluye el historial del repositorio en una compilación

A fin de compilar tu fuente en un repositorio de Git, Cloud Build realiza una clonación superficial del repositorio. Esto significa que solo se extrae en el espacio de trabajo para compilar la confirmación individual que inició la compilación. Cloud Build no verifica ninguna otra rama o historia. Esto se hace a fin de aumentar la eficiencia, así las compilaciones no tienen que esperar a que se recupere el repositorio y la historia completa solo para compilar una confirmación única.

Si deseas incluir más de la historia de tu repositorio en la compilación, agrega un paso de compilación a tu archivo de configuración de compilación de modo que la clonación deje de ser superficial. Por ejemplo:

steps:
- name: gcr.io/cloud-builders/git
  args: ['fetch', '--unshallow']
...

Para obtener más información sobre git fetch, consulta la referencia de git. Si deseas obtener instrucciones para escribir un archivo de configuración de compilación, consulta Descripción general de la configuración de compilación.

Inhabilita un activador de compilación

Console

  1. Abre la página Activadores en Google Cloud Console.

    Abrir la página Activadores de compilación

  2. Selecciona tu proyecto en el menú desplegable del selector de proyectos en la parte superior de la página.

  3. Haz clic en Abrir.

  4. Ubica la fila con el activador que deseas inhabilitar.

  5. Haz clic en el menú (puntos suspensivos verticales) que se ubica en el extremo derecho de la fila.

  6. Selecciona Inhabilitar.

gcloud

Para inhabilitar un activador, sigue estos pasos:

  1. Exporta el activador que deseas inhabilitar:

     gcloud beta builds triggers export TRIGGER_NAME --destination=EXPORT_PATH
    

    Aquí:

    • TRIGGER_NAME es el nombre del activador.
    • EXPORT_PATH es la ruta del archivo a la que deseas exportar el activador. Por ejemplo, puedes especificar la ruta de acceso del archivo como examples/trigger.yaml. Ten en cuenta que el nombre de archivo de tu activador debe tener la extensión .yaml.
  2. Abre el archivo que contiene el activador exportado.

    Tu archivo será similar al siguiente:

     createTime: '2020-02-21T20:02:50.215599013Z'
     description: Push to any branch
     filename: cloudbuild.yaml
     github:
       name: example-repo-name
       owner: example-owner
       push:
         branch: .*
     id: example-id
     name: Push-to-any-branch
     tags:
     - github-default-push-trigger
    
  3. Agrega el campo disabled al final del archivo y establece el valor como True.

     disabled: True
    
  4. Guarde el archivo.

  5. Importa el activador:

     gcloud beta builds triggers import --source=IMPORT_PATH
    

    Aquí:

    • IMPORT_PATH es la ruta de acceso del archivo del activador que deseas importar.

Ahora, tu activador de compilación está inhabilitado.

La inhabilitación de un activador no borra el activador. Para borrar un activador, consulta Borra un activador de compilación. Para volver a habilitar un activador, cambia el estado a Habilitado.

Borra un activador de compilación

Console

  1. Abre la página Activadores en Google Cloud Console.

    Abrir la página Activadores de compilación

  2. Selecciona tu proyecto en el menú desplegable del selector de proyectos en la parte superior de la página.

  3. Haz clic en Abrir.

  4. Ubica la fila con el activador que deseas borrar.

  5. Haz clic en el menú (puntos suspensivos verticales) que se ubica en el extremo derecho de la fila.

  6. Selecciona Borrar.

gcloud

Para borrar un activador, ejecuta el siguiente comando:

  gcloud beta builds triggers delete TRIGGER_NAME

En el ejemplo anterior, se ilustra lo siguiente:

  • TRIGGER_NAME es el nombre del activador.

Si deseas ver una lista completa de las marcas, consulta la referencia de gcloud sobre cómo borrar activadores.

Implicaciones de seguridad de los activadores de compilación

Los activadores de compilación usan la cuenta de Cloud Build para ejecutar compilaciones, lo que podría proporcionar permisos de tiempo de compilación a los usuarios que usan activadores a fin de ejecutar una compilación. Ten en cuenta las siguientes implicaciones de seguridad cuando uses los activadores de compilación:

  • Un usuario sin acceso a tu proyecto de Cloud, pero con acceso de escritura al repositorio asociado con los activadores de compilación en el proyecto, tendrá permisos para cambiar el código que se compilará.
  • Si usas activadores de solicitud de extracción de GitHub, cualquier usuario con acceso de lectura al repositorio puede enviar una solicitud de extracción, que puede ejecutar una compilación que incluya cambios al código en la solicitud de extracción. Si deseas obtener información a fin de inhabilitar este comportamiento para los activadores de solicitudes de extracción de GitHub, consulta Crea activadores de la app de GitHub.

Para obtener más información sobre la cuenta de servicio de Cloud Build y sus permisos asociados, consulta Cuenta de servicio de Cloud Build.

¿Qué sigue?