Skip to main content
Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Utilizar ambientes para el despliegue

Puedes configurr ambientes con reglas de protección y secretos. Un job de flujo de trabajo que referencie a un ambiente debe seguir cualquier regla de protección para el ambiente antes de ejecutar o acceder a los secretos de dicho ambiente.

Los ambientes, las reglas de protección de ambiente y los secretos de ambiente se encuentran disponibles en los repositorios públicos para todos los productos. Para tener acceso a los ambientes en los repositorios privados, debes utilizar GitHub Enterprise. Para obtener más información, consulta la sección "Productos de GitHub".

Acerca de los ambientes

Los ambientes se utilizan para describir un objetivo de despliegue general como production, staging o development. Cuando se despliega un flujo de trabajo de GitHub Actions en un ambiente, dicho ambiente se desplegará en la página principal del repositorio. Para obtener más información sobre cómo visualizar los despliegues hacia los ambientes, consulta la sección "Ver el historial de despliegue".

Puedes configurr ambientes con reglas de protección y secretos. Cuando un job de un flujo de trabajo referencia un ambiente, el job no comenzará hasta que todas las reglas de protección del ambiente pasen. Un job tampoco puede acceder a los secretos que se definen en un ambiente sino hasta que todas las reglas de protección de dicho ambiente pasen.

Reglas de protección de ambiente

Las reglas de protección de ambiente requieren que pasen condiciones específicas antes de que un job que referencia al ambiente pueda proceder. Puedes utilizar las reglas de protección de ambiente para requerir una aprobación manual, retrasar un job, o restringir el ambiente a ramas específicas.

Revisores requeridos

Utiliza los revisores requeridos para requerir que una persona o equipo específicos aprueben los jobs del flujo de trabajo que referencian el ambiente. Puedes listar hasta seis usuarios o equipos como revisores. Los revisores deben tener acceso de lectura en el repositorio como mínimo. Solo uno de los revisores requeridos necesita aprobar el job para que éste pueda proceder.

Para obtener más información sobre cómo revisar jobs que referencian un ambiente con revisores requeridos, consulta la sección "revisar los despliegues".

Temporizador de espera

Utiliza un temporizador de espera para retrasar un job durante una cantidad de tiempo específica después de que el job se active inicialmente. El tiempo (en minutos) debe ser un número entero entre 0 y 43,200 (30 días).

Ramas de despliegue

Utiliza ramas de despliegue para restringir las ramas que pueden hacer despliegues en el ambiente. A continuación encnotrarás las opciones para las ramas de despliegue de un ambiente:

  • Todas las ramas: Todas las ramas del repositorio pueden hacer despliegues en el ambiente.

  • Ramas protegidas: Solo las ramas que tengan reglas de protección de rama habilitadas podrán hacer despliegues en el ambiente. Si no se han definido reglas de protección de ramas en ninguna de las ramas del repositorio, entonces todas las ramas podrán hacer despliegues. Para obtener más iformación acerca de las reglas de protección de rama, consulta la sección "Acerca de las ramas protegidas".

  • Ramas selectas: Solo las ramas que coincidan con tus patrones específicos de nombre podrán hacer despliegues en el ambiente.

    Por ejemplo, si especificas releases/* como una regla de rama de despliegue, solo aquellas ramas cuyo nombre inicie con releases/ podrán hacer despliegues en el ambiente. (Los caracteres de comodín no coincidirán con /. Para hacer coincidir las ramas que inicien con release/ y contengan una diagonal sencilla adicional utiliza release/*/*.) Si agregas main como regla de rama de despliegue, la rama que se llame main también podrá hacer despliegues en el ambiente. Para obtener más información sobre las opciones de sintaxis para las ramas de despliegue, consulta la documentación de File.fnmatch de Ruby.

Secretos de ambiente

Los secretos que se almacenan en un ambiente sólo se encuentran disponibles para los jobs de flujo de trabajo que referencien el ambiente. Si el ambiente requiere aprobación, un job no puede acceder a secretos de ambiente hasta que uno de los revisores requeridos lo apruebe. Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados".

Nota: Los flujos de trabajo que se ejecutan en ejecutores auto-hospedados no se ejecutan en un contenedor aislado, incluso si utilizan ambientes. Los secretos de ambiente deberían tratarse con el mismo nivel de seguridad que los secretos de repositorio y de organización. Para obtener más información, consulta la sección "Fortalecimiento de la seguridad para las GitHub Actions".

Crear un ambiente

To configure an environment in a personal account repository, you must be the repository owner. Para configurar un ambiente en un repositorio de organización, debes tener acceso de admin.

Note: To create an environment in a private repository, your organization must use Nube de GitHub Enterprise. Para obtener más información sobre cómo puedes probar Nube de GitHub Enterprise gratis, consulta la sección "Configurar una prueba de Nube de GitHub Enterprise".

  1. En GitHub.com, visita la página principal del repositorio.
  2. Debajo de tu nombre de repositorio, da clic en Configuración. Botón de configuración del repositorio
  3. En la barra lateral izquierda, da clic en Ambientes.
  4. Da clic en Ambiente nuevo.
  5. Ingresa un nombre para el ambiente y luego da clic en Configurar ambiente. Los nombres de ambiente no distinguen entre mayúsculas y minúsculas. Un nombre de ambiente no deberá exceder los 255 caracteres y deberá ser único dentro del repositorio.
  6. Opcionalmente, personas o equipos específicos deben aprobar los jobs de flujo de trabajo que utilicen este ambiente.
    1. Selecciona Revisores requeridos.
    2. Ingresa hasta 6 personas o equipos. Solo uno de los revisores requeridos necesita aprobar el job para que éste pueda proceder.
    3. Haz clic en Guardar reglas de protección.
  7. Opcionalmente, especifica la cantidad de tiempo a esperar antes de permitir los jobs de flujo de trabajo que utilizan este ambiente para proceder.
    1. Selecciona Cronómetro de espera.
    2. Ingresa la cantidad de minutos a esperar.
    3. Haz clic en Guardar reglas de protección.
  8. Opcionalmente, especifica qué ramas pueden desplegarse en este ambiente. Para obtener más información sobre los valores posibles, consulta la sección "Ramas de despliegue".
    1. Selecciona la opción deseada en el menú desplegable de Ramas de despliegue.
    2. Si eliges Ramas seleccionadas, ingresa los patrones de nombre de rama que quieras permitir.
  9. Opcionalmente, agrega secretos de ambiente. Estos secretos solo están disponibles para los jobs de flujos de trabajo que utilicen el ambiente. Adicionalmente, los jobs de flujo de trabajo que utilicen este ambiente solo pueden acceder a estos secretos después de que pase cualquier regla configurada (por ejemplo, los revisores requeridos). Para obtener más información sobre los secretos, consulta la sección "Secretos cifrados".
    1. Debajo de Secretos de ambiente, haz clic en Agregar secreto.
    2. Ingresa el nombre del secreto.
    3. Ingresa el valor del secreto.
    4. Haz clic en Agregar secreto (Agregar secreto).

También puedes crear y configurar ambientes a través de la API de REST. Para obtener más información, consulta las secciones de "Ambientes" y "Secretos".

El ejecutar un flujo de trabajo que referencie un ambiente que no existe creará un ambiente con el nombre referenciado. El ambiente recién creado no tendrá configurada ninguna regla de protección o secreto. Cualquiera que pueda editar flujos de trabajo en el repositorio podrá crear ambientes a través de un archivo de flujo de trabajo, pero solo los administradoresd e repositorio pueden configurar el ambiente.

Utilizar un ambiente

Cad job en un flujo de trabajo puede referenciar un solo ambiente. Cualquier regla de protección que se configure para el ambiente debe pasar antes de que un job que referencia al ambiente se envíe a un ejecutor. El job puede acceder a los secretos de ambiente únicamente después de que se envía a un ejecutor.

Cuando un flujo de trabajo referencia un ambiente, éste aparecerá en los despliegues del repositorio. Para obtener más información acerca de visualizar los despliegues actuales y previos, consulta la sección "Visualizar el historial de despliegues".

Puedes especificar un ambiente para cada job de tu flujo de trabajo. Para hacerlo, agrega la clave jobs.<job_id>.environment seguida del nombre del ambiente.

Por ejemplo, este flujo de trabajo utilizará un ambiente llamado production.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Cuando se ejecute el flujo de trabajo anterior, el job deployment estará sujeto a cualquier regla que se haya configurado para el ambiente de production. Por ejemplo, si el ambiente requiere revisores, el job se pausará hasta que uno de ellos lo apruebe.

También puedes especificar una URL para el ambiente. La URL especificada aparecerá en la página de despliegues del repositorio (a la cual se puede acceder haciendo clic en Ambientes en la página principal de tu repositorio) y en la gráfica de visualización de la ejecución del flujo de trabajo. Si una solicitud de cambios activó el flujo de trabajo, la URL también se muestra como un botón de Ver despliegue en la línea de tiempo de esta.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: 
      name: production
      url: https://github.com
    steps:
      - name: deploy
        # ...deployment-specific steps

Gráfica de flujo de trabajo con URL

Borrar un ambiente

To configure an environment in a personal account repository, you must be the repository owner. Para configurar un ambiente en un repositorio de organización, debes tener acceso de admin.

El borrar un ambiente borrará todos los secretos y reglas de protección asociadas con éste. Cualquier job que esté actualmente en espera porque depende de las reglas de protección del ambiente que se borró, fallará automáticamente.

  1. En GitHub.com, visita la página principal del repositorio.
  2. Debajo de tu nombre de repositorio, da clic en Configuración. Botón de configuración del repositorio
  3. En la barra lateral izquierda, da clic en Ambientes.
  4. Junto al ambiente que quieres borrar, haz clic en .
  5. Da clic en Entiendo, borra este ambiente.

También puedes borrar los ambientes a través de la API de REST Para obtener más información, consulta la sección "Ambientes".

Cómo se relacionan los ambientes con los desplilegues

Cuando se ejecuta un job de flujo de trabajo que referencia un ambiente, este crea un objeto de despliegue con la propiedad environment configurada en el nombre de tu ambiente. Conforme progrese el flujo de trabajo, este también creará objetos de estado de despliegue con la propiedad environment configurada en el nombre de tu ambiente, la propiedad environment_url configurada para la URL del mismo (si se especificó en el flujo de trabajo) y la propiedad state configurada en el estado del job.

Puedes acceder a estos objetos a través de la API de REST o la API de GraphQL. También puedes suscribirte a estos eventos de webhook. Para obtener más información, consulta las secciones "Repositorios" (API de REST), "Objetos"(API de GraphQL) o "Cargas útiles y eventos de Webhook".

Pasos siguientes

GitHub Actions proporciona varias características para administrar tus despliegues. Para obtener más información, consulta la sección "Desplegar con GitHub Actions".