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.
- Siga los pasos para validar el entorno de laboratorio.
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.
-
Vaya al portal de Azure DevOps en
https://dev.azure.com
y abra su organización. -
Abra el proyecto eShopOnWeb.
-
Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones).
-
Seleccione Crear canalización.
-
Selecciona GIT de Azure Repos (YAML).
-
Selecciona el repositorio eShopOnWeb.
-
Seleccione Archivo YAML de Azure Pipelines existente.
-
Seleccione el archivo /.ado/eshoponweb-ci.yml y seleccione Continue (Continuar).
-
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.
-
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).
-
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.
-
Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones) y seleccione la canalización eshoponweb-ci-parameters.
-
Seleccione Editar.
-
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
-
Reemplace las rutas de acceso codificadas en las tareas
Restore
,Build
yTest
por los parámetros que acaba de crear.- Reemplazar proyectos:
**/*.sln
por proyectos:$
en las tareasRestore
yBuild
. - Reemplazar proyectos:
tests/UnitTests/*.csproj
por proyectos:$
en la tareaTest
Las tareas
Restore
,Build
yTest
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 }}
- Reemplazar proyectos:
-
Guarde y ejecute la canalización. Compruebe que la ejecución de canalización se completa correctamente.
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.
-
Vaya a Pipelines (Canalizaciones) > Library (Biblioteca).
-
Seleccione el botón + Grupo de variables para crear un nuevo grupo de variables denominado BuildConfigurations.
-
Agregue una variable denominada buildConfiguration y establezca su valor en
Release
. -
Guarde el grupo de variables.
-
Seleccione el botón Pipeline permissions (Permisos de canalización) y, luego, el botón + para agregar una canalización.
-
Seleccione la canalización eshoponweb-ci-parameters para permitir que la canalización use el grupo de variables.
[!NOTE] También puede establecer usuarios o grupos específicos para poder editar el grupo de variables haciendo clic en el botón Seguridad.
-
Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones).
-
Abra la canalización eshoponweb-ci-parameters y seleccione Edit (Editar).
-
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
-
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)
-
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.
-
Vaya a Pipelines (Canalizaciones) > Pipelines (Canalizaciones).
-
Abra la canalización eshoponweb-ci-parameters y seleccione Edit (Editar).
-
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.
-
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
-
Guarde y ejecute la canalización. Se ejecutará correctamente porque la variable buildConfiguration se establece en el grupo de variables.
-
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
-
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.