Share via


Tutorial: Implementación de entornos en CI/CD mediante GitHub y entornos de implementación de Azure

En este tutorial, aprenderá a integrar los entornos de implementación de Azure en la canalización de CI/CD. Puede usar cualquier proveedor de GitOps que admita CI/CD, como Acciones de GitHub, Azure Arc, GitLab o Jenkins.

La integración continua y entrega continua (CI/CD) es un enfoque de desarrollo de software que ayuda a los equipos a automatizar el proceso de creación, pruebas e implementación de cambios de software. CI/CD le permite liberar cambios de software con mayor frecuencia y con mayor confianza.

Use un flujo de trabajo que incluya tres ramas: main, dev y test.

  • La rama main (rama principal) siempre se considera la rama de producción.
  • Las ramas de características siempre se crean a partir de la rama main.
  • Puede crear solicitudes de incorporación de cambios para combinar ramas de características en main.

Este flujo de trabajo es un ejemplo pequeño para los fines de este tutorial. Los flujos de trabajo reales pueden ser más complejos.

Antes de comenzar este tutorial, puede familiarizarse con los recursos y conceptos de Deployment Environments mediante la revisión de Conceptos clave para entornos de implementación de Azure.

En este tutorial, aprenderá a:

  • Creación y configuración de un centro de desarrollo
  • Creación de un Almacén de claves
  • Creación y configuración de un repositorio de GitHub
  • Conexión del catálogo al centro de desarrollo
  • Configuración de identidades de implementación
  • Configuración de entornos de GitHub
  • Prueba de la canalización de CI/CD

Requisitos previos

  • Una cuenta de Azure con una suscripción activa.
  • Permisos de propietario en la suscripción a Azure.
  • Una cuenta de GitHub.
    • Si no tiene ninguna, regístrese gratis.
  • Instale Git.
  • Instale la CLI de Azure.

1. Creación y configuración de un centro de desarrollo

En esta sección, creará un centro de desarrollo y un proyecto de entornos de implementación de Azure con tres tipos de entorno: Desarrollo, Pruebas y Prod.

  • El tipo de entorno Prod contiene el único entorno de producción.
  • Se crea un nuevo entorno en Desarrollo para cada rama de características.
  • Se crea un nuevo entorno en Prueba para cada solicitud de incorporación de cambios.

1.1 Configuración de la CLI de Azure

Para empezar, inicie sesión en Azure. Ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.

az login

A continuación, instale la extensión del centro de desarrollo de Azure para la CLI de Azure.

az extension add --name devcenter --upgrade

Ahora que la extensión actual está instalada, registre el espacio de nombres Microsoft.DevCenter.

az provider register --namespace Microsoft.DevCenter

Sugerencia

En este tutorial, guardará varios valores como variables de entorno para usarlas más adelante. También puede que quiera registrar este valor en otra parte para asegurarse de que están disponibles cuando sea necesario.

Obtenga el id. de usuario y establézcalo en una variable de entorno para más adelante:

MY_AZURE_ID=$(az ad signed-in-user show --query id -o tsv)

Recupere el id. de la suscripción actual.

AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

Recupere el id. de inquilino para el inquilino actual.

AZURE_TENANT_ID=$(az account show --query tenantId --output tsv)

Establezca estas variables de entorno:

LOCATION="eastus"
AZURE_RESOURCE_GROUP=<resourceGroupName>
AZURE_DEVCENTER=<devcenterName>
AZURE_PROJECT=<projectName>
AZURE_KEYVAULT=<keyVaultName>

Nota:

Debe usar un nombre de almacén de claves único globalmente. De lo contrario, es posible que reciba el siguiente error: Code: VaultAlreadyExists Message: The vault name 'mykeyvaultname' is already in use. Vault names are globally unique so it is possible that the name is already taken.

1.2. Creación de un centro de desarrollo

Un centro de desarrollo es una colección de proyectos y entornos que tienen una configuración similar. Los centros de desarrollo proporcionan acceso a un catálogo de plantillas y artefactos que se pueden usar para crear entornos. Los centros de desarrollo también proporcionan una manera de administrar el acceso a entornos y proyectos.

Cree un grupo de recursos.

az group create \
  --name $AZURE_RESOURCE_GROUP \
  --location $LOCATION

Cree un nuevo centro de desarrollo.

az devcenter admin devcenter create \
  --name $AZURE_DEVCENTER \
  --identity-type SystemAssigned \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION

El comando anterior genera JSON. Guarde los valores de id y identity.principalId como variables de entorno para usarlos más adelante.

AZURE_DEVCENTER_ID=<id>
AZURE_DEVCENTER_PRINCIPAL_ID=<identity.principalId>

1.3 Asignación del rol de propietario de identidad del centro de desarrollo en la suscripción

Un centro de desarrollo necesita permisos para asignar roles en suscripciones asociadas a tipos de entorno.

Para reducir la complejidad innecesaria, en este tutorial, se usa una sola suscripción para el centro de desarrollo y todos los tipos de entorno. En la práctica, es probable que el centro de desarrollo y las suscripciones de implementación de destino sean suscripciones independientes con diferentes directivas aplicadas.

az role assignment create \
  --scope /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --role Owner \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

1.4 Creación de los tipos de entorno

En el nivel del centro de desarrollo, los tipos de entorno definen los entornos que los equipos de desarrollo pueden crear, como dev, test, espacio aislado, preproducción o producción.

Cree tres tipos de entorno nuevos: Desarrollo, Prueba y Prod.

az devcenter admin environment-type create \
  --name Dev \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Test \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER
az devcenter admin environment-type create \
  --name Prod \
  --resource-group $AZURE_RESOURCE_GROUP \
  --dev-center $AZURE_DEVCENTER

1.5. Creación de un proyecto

Un proyecto es el punto de acceso para el equipo encargado del desarrollo. Cada proyecto está asociado a un centro de desarrollo.

Cree un nuevo proyecto.

az devcenter admin project create \
  --name $AZURE_PROJECT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --dev-center-id $AZURE_DEVCENTER_ID

El comando anterior genera JSON. Guarde el valor id como una variable de entorno para usarla más adelante.

AZURE_PROJECT_ID=<id>

Asígnese el rol DevCenter Project Administración en el proyecto.

az role assignment create \
  --scope "$AZURE_PROJECT_ID" \
  --role "DevCenter Project Admin" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

1.6 Creación de tipos de entorno del proyecto

En el nivel de proyecto, los ingenieros de la plataforma especifican qué tipos de entorno son adecuados para el equipo de desarrollo.

Cree un nuevo tipo de entorno de proyecto para cada uno de los tipos de entorno que creó en el centro de desarrollo.

az devcenter admin project-environment-type create \
  --name Dev \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Test \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled
az devcenter admin project-environment-type create \
  --name Prod \
  --roles "{\"b24988ac-6180-42a0-ab88-20f7382dd24c\":{}}" \
  --deployment-target-id /subscriptions/$AZURE_SUBSCRIPTION_ID \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --project $AZURE_PROJECT \
  --identity-type SystemAssigned \
  --status Enabled

2. Creación de un almacén de claves

En esta sección, creará un nuevo almacén de claves. Use este almacén de claves más adelante en el tutorial para guardar un token de acceso personal desde GitHub.

az keyvault create \
  --name $AZURE_KEYVAULT \
  --resource-group $AZURE_RESOURCE_GROUP \
  --location $LOCATION \
  --enable-rbac-authorization true

De nuevo, guarde el id del resultado JSON del comando anterior como una variable de entorno.

AZURE_KEYVAULT_ID=<id>

Conceda el rol Administración istrator de Key Vault en el nuevo almacén de claves.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Administrator" \
  --assignee-object-id $MY_AZURE_ID \
  --assignee-principal-type User

Asigne a la identidad del centro de desarrollo el rol de usuario de secretos de Key Vault.

az role assignment create \
  --scope $AZURE_KEYVAULT_ID \
  --role "Key Vault Secrets User" \
  --assignee-object-id $AZURE_DEVCENTER_PRINCIPAL_ID \
  --assignee-principal-type ServicePrincipal

3. Creación y configuración de un repositorio de GitHub

En esta sección, creará un nuevo repositorio de GitHub para almacenar un catálogo. Azure Deployment Environments admite repositorios de GitHub y Azure DevOps. En este tutorial, usará GitHub.

3.1 Creación de un nuevo repositorio de GitHub

En este paso, creará un nuevo repositorio en la cuenta de GitHub que tiene una estructura de directorios predefinida, ramas y archivos. Estos elementos se generan a partir de un repositorio de plantillas de ejemplo.

  1. Use este vínculo para generar un nuevo repositorio de GitHub a partir de la plantilla de ejemplo.

    Screenshot showing the GitHub create repository from template page.

  2. Si no tiene una cuenta de GitHub de pago, establezca el repositorio en Público.

  3. Seleccione Create repository from template (Crear repositorio a partir de plantilla).

  4. En la pestaña Acciones, observe que se produce un error en la acción Crear entorno. Este es el comportamiento esperado; debe continuar al paso siguiente.

3.2 Protección de la rama main del repositorio

Puede proteger las ramas importantes estableciendo reglas de protección de ramas. Las reglas de protección definen si los colaboradores pueden eliminar o forzar la inserción en la rama. También establecen requisitos para las inserciones en la rama, como tener que pasar comprobaciones de estado o un historial de confirmaciones lineales.

Nota

Las ramas protegidas están disponibles en repositorios públicos con GitHub Free y GitHub Free para organizaciones, así como en repositorios públicos y privados con GitHub Pro, GitHub Team, GitHub Enterprise Cloud y GitHub Enterprise Server. Para obtener más información, consulte Productos de GitHub.

  1. Si aún no está abierta, vaya a la página principal del repositorio.

  2. En el nombre del repositorio, seleccione Configuración. Si no puede ver la pestaña Configuración, seleccione el menú desplegable ... y, a continuación, seleccione Configuración.

    Screenshot showing the GitHub repository page with settings highlighted.

  3. En la sección Código y automatización de la barra lateral, seleccione Ramas.

    Screenshot showing the settings page, with branches highlighted.

  4. En Reglas de protección de ramas, seleccione Agregar regla de protección de rama.

    Screenshot showing the branch protection rule page, with Add branch protection rule highlighted.

  5. En Patrón de nombre de rama, escriba main.

    Screenshot showing the branch name pattern text box, with main highlighted.

  6. En Proteger las ramas coincidentes, seleccione Exigir una solicitud de incorporación de cambios antes de la combinación.

    Screenshot showing protect matching branches with Require a pull request before merging selected and highlighted.

  7. De manera opcional, puede habilitar más reglas de protección.

  8. Seleccione Crear.

3.3 Variables de configuración del repositorio

Nota

Las variables de configuración para Acciones de GitHub están en versión beta y sujetas a cambios.

  1. En la sección Seguridad de la barra lateral, seleccione Secretos y variables y, luego, seleccione Acciones.

    Screenshot showing the Security section of the sidebar with Actions highlighted.

  2. Seleccione la pestaña Variables.

  3. Para cada elemento de la tabla:

    1. Seleccione Nuevo secreto del repositorio.
    2. En el campo Nombre, escriba el nombre de la variable.
    3. En el campo Valor, escriba el valor descrito en la tabla.
    4. Seleccione Add variable.
    Nombre de la variable Valor variable
    AZURE_DEVCENTER Nombre del centro de desarrollo
    AZURE_PROJECT Nombre del proyecto
    AZURE_CATALOG Establezca en "Entornos"
    AZURE_CATALOG_ITEM Establezca en "FunctionApp"
    AZURE_SUBSCRIPTION_ID El identificador de suscripción a Azure
    AZURE_TENANT_ID Identificador de inquilino de Azure

    Screenshot showing the variables page with the variables table.

3.4 Creación de un token de acceso personal de GitHub

Luego, cree un token de acceso personal específico para permitir que el centro de desarrollo de Azure Deployment Environments se conecte al repositorio y consuma el catálogo de entornos.

Nota:

El token de acceso personal específico está actualmente en versión beta y está sujeto a cambios. Para dejar comentarios, consulte la página de debate y comentarios.

  1. En la esquina superior derecha de cualquier página de GitHub.com, seleccione su foto del perfil y, luego, seleccione Configuración.

  2. En la barra lateral izquierda, seleccione Configuración de desarrollador.

  3. En la barra lateral izquierda, en Tókenes de acceso personal, seleccione Tókenes específicos y, luego, seleccione Generar nuevo token.

    Screenshot showing the GitHub personal access token options, with Fine-grained tokens and Generate new token highlighted.

  4. En la página Nuevo token de acceso personal específico, en Nombre del token, escriba un nombre para el token.

  5. En Expiración, selecciona cuándo expirará el token.

  6. Seleccione su usuario de GitHub en Propietario del recurso.

  7. En Acceso al repositorio, seleccione Solo repositorios seleccionados y, luego, en la lista desplegable Repositorios seleccionados, busque y seleccione el repositorio que ha creado.

    Screenshot showing GitHub repository access options, with Only select repositories highlighted.

  8. En Permisos, seleccione Permisos del repositorio y cambie Contenido a Solo lectura.

    Screenshot showing GitHub repository permissions with Contents highlighted.

  9. Seleccione Generar token.

  10. Copie y guarde el token de acceso personal ahora. No se puede volver a ver.

3.5 Guardar el token de acceso personal en el almacén de claves

A continuación, guarde el token de acceso personal como un secreto del almacén de claves denominado pat.

az keyvault secret set \
    --name pat \
    --vault-name $AZURE_KEYVAULT \
    --value <personalAccessToken>

4. Conexión del catálogo al centro de desarrollo

En Azure Deployment Environments, un catálogo es un repositorio que contiene un conjunto de definiciones de entorno. Los elementos de catálogo constan de una plantilla de infraestructura como código (IaC) y un archivo de entorno que actúa como manifiesto. La plantilla define el entorno, y el archivo de entorno proporciona metadatos sobre la plantilla. Los equipos de desarrollo usan definiciones de entorno del catálogo para crear entornos.

La plantilla que ha usado para crear el repositorio de GitHub contiene un catálogo en la carpeta Entornos.

Incorporación del catálogo al centro de desarrollo

En el comando siguiente, reemplace < Organization/Repository > por el nombre de su repositorio y organización de GitHub.

az devcenter admin catalog create \
    --name Environments \
    --resource-group $AZURE_RESOURCE_GROUP \
    --dev-center $AZURE_DEVCENTER \
    --git-hub path="/Environments" branch="main" secret-identifier="https://$AZURE_KEYVAULT.vault.azure.net/secrets/pat" uri="https://github.com/< Organization/Repository >.git"

5. Configuración de identidades de implementación

OpenID Connect con Acciones de GitHub es un método de autenticación que usa tókenes de corta duración para ofrecer seguridad reforzada. Esta es la manera recomendada de autenticar Acciones de GitHub en Azure.

También puede autenticar una entidad de servicio directamente mediante un secreto, pero eso está fuera del ámbito de este tutorial.

5.1 Generación de identidades de implementación

  1. Registre aplicaciones y entidades de servicio de Microsoft Entra para cada uno de los tres tipos de entorno.

    Cree la aplicación Microsoft Entra para Desarrollo.

    az ad app create --display-name "$AZURE_PROJECT-Dev"
    

    Este comando genera un JSON con un id que se usa al crear credenciales federadas con Graph API y un appId (también denominado id. de cliente).

    Establezca estas variables de entorno:

    DEV_AZURE_CLIENT_ID=<appId>
    DEV_APPLICATION_ID=<id>
    

    Repita el proceso de prueba.

    az ad app create --display-name "$AZURE_PROJECT-Test"
    
    TEST_AZURE_CLIENT_ID=<appId>
    TEST_APPLICATION_ID=<id>
    

    Y para Prod.

    az ad app create --display-name "$AZURE_PROJECT-Prod"
    
    PROD_AZURE_CLIENT_ID=<appId>
    PROD_APPLICATION_ID=<id>
    
  2. Cree una entidad de servicio para cada aplicación.

    Ejecute el comando siguiente para crear una nueva entidad de servicio para Dev.

     az ad sp create --id $DEV_AZURE_CLIENT_ID
    

    Este comando genera una salida de JSON con un id diferente y se usará en el siguiente paso.

    Establezca estas variables de entorno:

    DEV_SERVICE_PRINCIPAL_ID=<id>
    

    Repita el proceso de prueba.

     az ad sp create --id $TEST_AZURE_CLIENT_ID
    
    TEST_SERVICE_PRINCIPAL_ID=<id>
    

    Y para Prod.

     az ad sp create --id $PROD_AZURE_CLIENT_ID
    
    PROD_SERVICE_PRINCIPAL_ID=<id>
    
  3. Ejecute los siguientes comandos para crear credenciales de identidad federada para cada aplicación de Active Directory.

    En cada uno de los comandos siguientes, reemplace < Organization/Repository > por el nombre de su repositorio y organización de GitHub.

    Cree la credencial de identidad federada para Dev.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$DEV_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEDev","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Dev","description":"Dev","audiences":["api://AzureADTokenExchange"]}'
    

    Para Prueba.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$TEST_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADETest","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Test","description":"Test","audiences":["api://AzureADTokenExchange"]}'
    

    Y para Prod.

    az rest --method POST \
        --uri "https://graph.microsoft.com/beta/applications/$PROD_APPLICATION_ID/federatedIdentityCredentials" \
        --body '{"name":"ADEProd","issuer":"https://token.actions.githubusercontent.com","subject":"repo:< Organization/Repository >:environment:Prod","description":"Prod","audiences":["api://AzureADTokenExchange"]}'
    

5.2 Asignación de roles a identidades de implementación

  1. Asigne el rol Reader (Lector) a cada identidad de implementación en el proyecto.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID" \
        --role Reader \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
  2. Asigne cada identidad de implementación el rol Usuario de entornos de implementación a su tipo de entorno correspondiente.

    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Dev" \
        --role "Deployment Environments User" \
        --assignee-object-id $DEV_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Test" \
        --role "Deployment Environments User" \
        --assignee-object-id $TEST_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    
    az role assignment create \
        --scope "$AZURE_PROJECT_ID/environmentTypes/Prod" \
        --role "Deployment Environments User" \
        --assignee-object-id $PROD_SERVICE_PRINCIPAL_ID \
        --assignee-principal-type ServicePrincipal
    

6. Configuración de entornos de GitHub

Con el uso de entornos de GitHub, puede configurar entornos 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.

Cree entornos de desarrollo, pruebas y prod que se asignen a los tipos de entorno en el proyecto Entornos de implementación de Azure.

Nota:

Los entornos, las reglas de protección de entorno y los secretos de entorno se encuentran disponibles en los repositorios públicos para todos los productos. Para acceder a entornos, secretos de entorno y ramas de implementación en repositorios privados o internos, debe usar GitHub Pro, GitHub Team o GitHub Enterprise. Para acceder a otras reglas de protección de entornos en los repositorios privados o internos, debe utilizar GitHub Enterprise. Para obtener más información, consulte Productos de GitHub.

6.1 Creación del entorno de Dev

  1. En GitHub, vaya a la página principal del repositorio.

  2. En el nombre del repositorio, seleccione Configuración. Si no puede ver la pestaña Configuración, seleccione el menú desplegable ... y, a continuación, seleccione Configuración.

  3. En la barra lateral izquierda, haga clic en Entornos.

  4. Seleccione Nuevo entorno y escriba Dev como nombre del entorno y, luego, seleccione Configurar entorno.

    Screenshot showing the Environments Add pane, with the environment name Dev, and Configure Environment highlighted.

  5. En Secretos de entorno, seleccione Agregar secreto y escriba AZURE_CLIENT_ID en Nombre.

    Screenshot showing the Environment Configure Dev pane, with Add secret highlighted.

  6. En Valor, escriba el identificador de cliente (appId) para la aplicación *Dev**Microsoft Entra que creó anteriormente (guardada como la variable de $DEV_AZURE_CLIENT_ID entorno).

    Screenshot of the Add secret box with the name AZURE CLIENT ID, the value set to an ID number, and add secret highlighted.

  7. Seleccione Add secret (Agregar secreto).

6.2 Creación del entorno de Test

Vuelva a la página principal de entornos; para hacerlo, seleccione Entornos en la barra lateral izquierda.

  1. Seleccione Nuevo entorno y escriba Test como nombre del entorno y, luego, seleccione Configurar entorno.

  2. En Secretos de entorno, seleccione Agregar secreto y escriba AZURE_CLIENT_ID en Nombre.

  3. En Valor, escriba el id. de cliente (appId) para la aplicación de Microsoft Entra Test que ha creado anteriormente (guardada como la variable de entorno $TEST_AZURE_CLIENT_ID).

  4. Seleccione Add secret (Agregar secreto).

6.3 Creación del entorno de Prod

Una vez más, vuelva a la página principal de entornos; para hacerlo, seleccione Entornos en la barra lateral izquierda

  1. Seleccione Nuevo entorno y escriba Prod como nombre del entorno y, luego, seleccione Configurar entorno.

  2. En Secretos de entorno, seleccione Agregar secreto y escriba AZURE_CLIENT_ID en Nombre.

  3. En Valor, escriba el id. de cliente (appId) para la aplicación de Microsoft Entra Prod que ha creado anteriormente (guardada como la variable de entorno $PROD_AZURE_CLIENT_ID).

  4. Seleccione Add secret (Agregar secreto).

Luego, asígnese como revisor necesario para este entorno. Al intentar realizar la implementación en Prod, Acciones de GitHub esperará una aprobación antes de comenzar. Mientras un trabajo está esperando la aprobación, tiene el estado Esperando. Si un trabajo no se aprueba en un plazo de 30 días, se produce un error automáticamente.

Para obtener más información sobre entornos y aprobaciones necesarias, consulte Uso de entornos para la implementación.

  1. Seleccione Revisores obligatorios.

  2. Busque y seleccione el usuario de GitHub. Puede ingresar hasta seis personas o equipos. Solo uno de los revisores requeridos necesita aprobar el job para que éste pueda proceder.

  3. Seleccione Save protection rules (Guardar reglas de protección).

Por último, configure main como rama de implementación:

  1. En la lista desplegable Ramas de implementación, elija Ramas seleccionadas.

  2. Seleccione Agregar regla de rama de implementación y escriba main para el patrón De nombre de rama.

  3. Seleccione Agregar regla.

7. Prueba de la canalización de CI/CD

En esta sección, realizará algunos cambios en el repositorio y probará la canalización de CI/CD.

7.1 Clonar el repositorio

  1. En el terminal, use el comando cd hacia la carpeta en la que le gustaría clonar el repositorio de manera local.

  2. Clone el repositorio. Asegúrese de reemplazar < Organization/Repository > en el siguiente comando por el nombre de su repositorio y organización de GitHub.

    git clone https://github.com/< Organization/Repository >.git
    
  3. Vaya al directorio clonado.

    cd <repository>
    
  4. Luego, cree una nueva rama y publíquela de forma remota.

    git checkout -b feature1
    
    git push -u origin feature1
    

    Se crea un nuevo entorno en Azure específico de esta rama.

  5. En GitHub, vaya a la página principal del repositorio recién creado.

  6. En el nombre del repositorio, seleccione Acciones.

    Debería ver un nuevo flujo de trabajo Crear entorno en ejecución.

7.2 Realizar un cambio en el código

  1. Abra el repositorio clonado localmente en VS Code.

  2. En el ADE. Carpeta del tutorial , realice un cambio en un archivo.

  3. Guarde el cambio.

7.3 Insertar los cambios para actualizar el entorno

  1. Almacene provisionalmente los cambios e insértelos en la rama feature1.

    git add .
    git commit -m '<commit message>'
    git push
    
  2. En la página Acciones del repositorio, verá un nuevo flujo de trabajo de Actualizar entorno en ejecución.

7.4 Crear una solicitud de incorporación de cambios

  1. Cree una solicitud de incorporación de cambios main <- feature1de GitHub.

  2. En la página Acciones del repositorio, verá que se inicia un nuevo flujo de trabajo para crear un entorno específico de la solicitud de incorporación de cambios mediante el tipo de entorno de prueba.

7.5 Combinar la solicitud de incorporación de cambios

  1. En GitHub, vaya a la solicitud de incorporación de cambios que ha creado.

  2. Combine la solicitud de incorporación de cambios.

    Los cambios se publican en el entorno de producción y se eliminan la rama y los entornos de solicitud de incorporación de cambios.

Limpieza de recursos

Si no planea usar ninguno de los recursos que ha creado, elimínelos para no incurrir en cargos. Si ha implementado la aplicación de ejemplo en otro grupo de recursos, puede repetir los siguientes pasos.

Para eliminar recursos desde Azure Portal:

  1. Seleccione el botón del menú de la esquina superior izquierda y, después, seleccione Grupos de recursos.

  2. En la lista, seleccione el grupo de recursos que creó.

  3. Seleccione Eliminar grupo de recursos.

  4. Escriba el nombre del grupo de recursos. A continuación, seleccione Eliminar.

Para eliminar recursos mediante la CLI de Azure, escriba el siguiente comando:

az group delete --name <my-dev-center-rg>

Recuerde que al eliminar el grupo de recursos se eliminan todos los recursos que contiene.