Ejercicio: Creación de un flujo de trabajo para una solicitud de incorporación de cambios
El equipo de desarrollo de su sitio web le pidió que actualice el sitio web para que se ejecute en el sistema operativo Linux. En este ejercicio, agregarás un flujo de trabajo de validación que se ejecuta automáticamente cuando se abre o se actualiza una solicitud de incorporación de cambios. A continuación, crearás una solicitud de incorporación de cambios para el cambio de sistema operativo del sitio web.
Durante el proceso, hará lo siguiente:
- Crea un flujo de trabajo para la validación de solicitudes de incorporación de cambios.
- Agrega la linting de Bicep al flujo de trabajo.
- Crea una solicitud de incorporación de cambios e inspecciona cómo se ejecuta el flujo de trabajo.
- Corrige los errores identificados por el flujo de trabajo de validación de solicitudes de incorporación de cambios.
- Vuelve a ejecutar el flujo de trabajo y, después, combina y cierra la solicitud de incorporación de cambios.
Crea de un flujo de trabajo para ejecutarlo cuando se creen y actualicen las solicitudes de incorporación de cambios
En Visual Studio Code, crea un nombre de archivo pr-validation.yml en la carpeta .github/workflows.
Agregue el siguiente código al archivo:
name: pr-validation on: pull_request
Este código garantiza que el flujo de trabajo se ejecuta cada vez que se crea o actualiza una solicitud de incorporación de cambios.
Nota
Estás trabajando directamente contra el repositorio de la rama principal. Normalmente, no lo harías, pero en este ejercicio trabajarás con lo principal para simplificar los pasos. En sus propios proyectos, es importante configurar reglas de protección de rama para proteger la rama principal.
Añade un trabajo de lint al flujo de trabajo
Siempre que se abre o edita una solicitud de incorporación de cambios, se requiere ejecutar un paso de linting para los archivos Bicep. Hay un flujo de trabajo de lint reutilizable en el repositorio al que puedes llamar desde este flujo de trabajo.
Al final del contenido del archivo existente, agrega las líneas siguientes para reutilizar el flujo de trabajo lint definido en el repositorio:
jobs: lint: uses: ./.github/workflows/lint.yml
El repositorio hay un archivo bicepconfig.json que configura el linter para que emita errores en lugar de advertencias, por lo que cualquier error durante el trabajo de lint hará que se produzca un error en el flujo de trabajo.
Guarde los cambios.
Confirma e inserta los cambios en la rama del repositorio Gitprincipalmediante la ejecución de los comandos siguientes en el terminal de Visual Studio Code:
git add . git commit -m "Add first version of pull request validation workflow" git push
Actualización del archivo de Bicep
Después, modifica el archivo Bicep del sitio web para actualizar el sistema operativo del sitio a Linux.
En el terminal de Visual Studio Code, cree una rama para los cambios ejecutando el comando siguiente:
git checkout -b feature/linux-app
Abra el archivo main.bicep en la carpeta deploy.
Cerca de la parte superior del archivo, debajo de las definiciones de variable, define una nueva variable para que la utilice el marco de trabajo de la aplicación:
// Define the names for resources. var appServiceAppName = 'toy-website-linux-${resourceNameSuffix}' var appServicePlanName = 'toy-website-linux' var storageAccountName = 'mystorage${resourceNameSuffix}' var appServiceAppLinuxFrameworkVersion = 'node|14-lts'
Esta configuración indica a Azure App Service que la aplicación se va a crear con la versión 14 del marco Node.js.
Actualiza la definición
appServicePlan
del recurso. Agregue la propiedadkind
y la propiedadreserved
en el objetoproperties
:resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: environmentConfigurationMap[environmentType].appServicePlan.sku kind: 'linux' properties: { reserved: true } }
Actualiza la definición
appServiceApp
de recursos para establecer el marco de trabajo de la aplicación:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { linuxFxVersion: 'node|14-lts' } } }
Nota
Es posible que observes que Bicep te avisa de que no estás usando la
appServiceAppLinuxFrameworkVersion
variable. En este caso, estás causando intencionadamente un error de linter para poder ver cómo se ve dentro de la solicitud de incorporación de cambios de GitHub.Guarde los cambios.
Confirme e inserte los cambios en el repositorio de Git mediante la ejecución de los comandos siguientes en el terminal de Visual Studio Code:
git add . git commit -m "Update operating system to Linux" git push origin feature/linux-app
Crear una solicitud de incorporación de cambios
Ahora que el flujo de trabajo está configurado y se ha actualizado el archivo Bicep, puedes crear una solicitud de incorporación de cambios.
En el explorador, selecciona el Código.
Selecciona 2 ramas para abrir la lista de ramas del repositorio GitHub.
La comparación y solicitud de cambios se muestra durante un breve tiempo cuando se insertan cambios en la rama que aún no tiene una solicitud de incorporación de cambios abierta. Se trata de un acceso directo a la página Abrir una solicitud de incorporación de cambios.
Junto a la rama feature/linux-app , selecciona Nueva solicitud de incorporación de cambios. Es posible que tenga que seleccionar el icono Más (...) para mostrar la opción Nueva solicitud de cambios.
Seleccione Crear solicitud de incorporación de cambios.
Se mostrará la página de detalles de la solicitud de incorporación de cambios.
Consulta la sección Comprobaciones de los detalles de la solicitud de incorporación de cambios.
Después de un momento, observe que se desencadena una comprobación automática. La comprobación ejecuta el flujo de trabajo de validación de la solicitud de incorporación de cambios.
Es posible que el flujo de trabajo tarde un poco a empezar a funcionar. Actualiza la ventana del explorador web hasta que veas las comprobaciones de estado.
Cuando finalice la comprobación, puede ver que se produjo un error.
Nota
GitHub permite combinar la solicitud de incorporación de cambios aunque se produzca un error en las comprobaciones de estado. En una solución real, debería configurar una regla de protección de rama para evitar que una solicitud de incorporación de cambios se combine hasta que las comprobaciones de estado se hayan hecho correctamente.
Corrección de los errores de validación de solicitudes de incorporación de cambios
En el panel de comprobación de estado, selecciona Detalles para inspeccionar el registro de flujo de trabajo.
El registro incluye este mensaje del linter de Bicep:
Error no-unused-vars: Variable "appServiceAppLinuxFrameworkVersion" is declared but never used.
En Visual Studio Code, abre el archivo deploy/main.bicep.
En la línea 20, hay una variable denominada
appServiceAppLinuxFrameworkVersion
. No se usa la variable. Luego, se solucionará este error.En la
appServiceApp
definición de recursos, actualiza lalinuxFxVersion
propiedad para que use la variable en lugar de establecer la propiedad con el valor codificado:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { linuxFxVersion: appServiceAppLinuxFrameworkVersion } } }
En el terminal de Visual Studio Code, confirma los cambios e insértalos en el repositorio.
git add . git commit -m "Fix Bicep file" git push origin feature/linux-app
Supervisa y combina la solicitud de incorporación de cambios
Vuelve a abrir el explorador en la página de detalles de la solicitud de incorporación de cambios.
La validación de la solicitud de incorporación de cambios se ejecuta de nuevo. Si la comprobación de estado no se está ejecutando, actualiza la página.
Espera a que termine la comprobación. Esta vez, se ha realizado correctamente. No hay ningún error de sintaxis o errores de linter en el archivo Bicep, por lo que ya puedes combinar la solicitud de incorporación de cambios.
Selecciona Combinar solicitud de incorporación de cambios para cerrar la solicitud y combinar los cambios en la rama principal.
Selecciona Confirmar combinación.