Configuración de canalizaciones para usar variables y parámetros de forma segura

En este laboratorio, aprenderá a configurar canalizaciones para usar de forma segura variables y parámetros.

Estos ejercicios duran aproximadamente 20 minutos.

Antes de comenzar

Necesitará una suscripción de Azure, una organización de Azure DevOps y la aplicación eShopOnWeb para seguir los laboratorios.

Instrucciones

Ejercicio 1: Garantizar los tipos de parámetros y variables

Ejercicio 1: Importación y ejecución de la canalización de CI

Empiece por importar la canalización de CI denominada eshoponweb-ci.yml.

  1. Vaya al portal de Azure DevOps en https://dev.azure.com y abra su organización.

  2. Abra el proyecto eShopOnWeb.

  3. Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones).

  4. Seleccione Crear canalización.

  5. Selecciona GIT de Azure Repos (YAML).

  6. Selecciona el repositorio eShopOnWeb.

  7. Seleccione Archivo YAML de Azure Pipelines existente.

  8. Seleccione el archivo /.ado/eshoponweb-ci.yml y seleccione Continue (Continuar).

  9. Haga clic en el botón Run (Ejecutar) para ejecutar la canalización.

    [!NOTE] La canalización tomará un nombre basado en el nombre del proyecto. Cámbielo para identificar mejor la canalización.

  10. Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones) y seleccione la canalización creada recientemente. Seleccione los puntos suspensivos y la opción Rename/move (Cambiar nombre/mover).

  11. Asígnele el nombre eshoponweb-ci-parameters y seleccione Save (Guardar).

Tarea 2: Garantizar tipos de parámetros para canalizaciones YAML

En esta tarea, establecerá los tipos de parámetro y parámetro para la canalización.

  1. Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones) y seleccione la canalización eshoponweb-ci-parameters.

  2. Seleccione Editar.

  3. Agregue las siguientes secciones de parámetros y recursos a la parte superior del archivo YAML:

    parameters:
    - name: dotNetProjects
      type: string
      default: '**/*.sln'
    - name: testProjects
      type: string
      default: 'tests/UnitTests/*.csproj'
    
    resources:
      repositories:
      - repository: self
        trigger: none
    
    
  4. Reemplace las rutas de acceso codificadas en las tareas Restore, Build y Test por los parámetros que acaba de crear.

    • Reemplazar proyectos: **/*.sln por proyectos: $ en las tareas Restore y Build.
    • Reemplazar proyectos: tests/UnitTests/*.csproj por proyectos: $ en la tarea Test

    Las tareas Restore, Build y Test en la sección de pasos del archivo YAML deben tener este aspecto:

     steps:
     - task: DotNetCoreCLI@2
       displayName: Restore
       inputs:
         command: 'restore'
         projects: ${{ parameters.dotNetProjects }}
         feedsToUse: 'select'
        
     - task: DotNetCoreCLI@2
       displayName: Build
       inputs:
         command: 'build'
         projects: ${{ parameters.dotNetProjects }}
        
     - task: DotNetCoreCLI@2
       displayName: Test
       inputs:
         command: 'test'
         projects: ${{ parameters.testProjects }}
        
    
  5. Guarde y ejecute la canalización. Compruebe que la ejecución de canalización se completa correctamente.

    Captura de pantalla de la ejecución de canalización con parámetros.

Tarea 3: Protección de variables y parámetros

En esta tarea, protegerá las variables y los parámetros de la canalización mediante grupos de variables.

  1. Vaya a Pipelines (Canalizaciones) > Library (Biblioteca).

  2. Seleccione el botón + Grupo de variables para crear un nuevo grupo de variables denominado BuildConfigurations.

  3. Agregue una variable denominada buildConfiguration y establezca su valor en Release.

  4. Guarde el grupo de variables.

    Captura de pantalla del grupo de variables con BuildConfigurations.

  5. Seleccione el botón Pipeline permissions (Permisos de canalización) y, luego, el botón + para agregar una canalización.

  6. Seleccione la canalización eshoponweb-ci-parameters para permitir que la canalización use el grupo de variables.

    Captura de pantalla de los permisos de canalización.

    [!NOTE] También puede establecer usuarios o grupos específicos para poder editar el grupo de variables haciendo clic en el botón Seguridad.

  7. Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones).

  8. Abra la canalización eshoponweb-ci-parameters y seleccione Edit (Editar).

  9. En la parte superior del archivo yml, justo debajo de los parámetros, haga referencia al grupo de variables agregando lo siguiente:

    variables:
      - group: BuildConfigurations
    
  10. En la tarea “Compilar”, reemplace el comando “build” por las líneas siguientes para usar la configuración de compilación del grupo de variables.

             command: 'build'
             projects: ${{ parameters.dotNetProjects }}
             configuration: $(buildConfiguration)
    
  11. Guarde y ejecute la canalización. Debe ejecutarse correctamente con la configuración de compilación establecida en Release. Para comprobarlo, examine los registros de la tarea “Compilar”.

[!NOTE] Siguiendo este enfoque, puede proteger las variables y los parámetros mediante el uso de grupos de variables sin tener que codificarlos de forma difícil en archivos YAML.

Tarea 4: Validación de variables y parámetros obligatorios

En esta tarea, validará las variables obligatorias antes de que se ejecute la canalización.

  1. Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones).

  2. Abra la canalización eshoponweb-ci-parameters y seleccione Edit (Editar).

  3. En la sección de fases, al principio (siguiendo la línea stage:), agregue una nueva fase denominada Validación para validar las variables obligatorias antes de que se ejecute la canalización.

     - stage: Validate
       displayName: Validate mandatory variables
       jobs:
       - job: ValidateVariables
         pool:
           vmImage: ubuntu-latest
         steps:
         - script: |
             if [ -z "$(buildConfiguration)" ]; then
               echo "Error: buildConfiguration variable is not set"
               exit 1
             fi
           displayName: 'Validate Variables'
    

    [!NOTE] Esta fase ejecutará un script para validar la variable buildConfiguration. Si no se establecen las variables, se producirá un error en el script y se detendrá la canalización.

  4. Haga que la fase de Compilación dependa de la fase de Validación agregando dependsOn: Validate al principio de la fase de Compilación:

     - stage: Build
       displayName: Build .Net Core Solution
       dependsOn: Validate
    
  5. Guarde y ejecute la canalización. Se ejecutará correctamente porque la variable buildConfiguration se establece en el grupo de variables.

  6. Para probar la validación, quite la variable buildConfiguration del grupo de variables o elimine el grupo de variables y vuelva a ejecutar la canalización. No debería completarse y debería aparecer el siguiente error:

     Error: buildConfiguration variable is not set   
    

    Captura de pantalla de la ejecución de canalización con error de validación.

  7. Vuelva a agregar el grupo de variables y la variable buildConfiguration al grupo de variables y vuelva a ejecutar la canalización. Debería ejecutarse correctamente.

Revisar

En este laboratorio, aprenda a configurar canalizaciones para usar de forma segura variables y parámetros.