Hace unos días (13 de noviembre de 2019) GitHub anunció la disponibilidad general de las Acciones de GitHub. Solución CI / CD de GitHub. Lo probé con dos de mis proyectos y tengo que decir que estoy impresionado. Pero lo primero es lo primero.
Describiré a continuación cómo configuré dos de mis proyectos (Angular 8 y .NET Core 3) con las acciones de GitHub.
Integración continua
Después de cada confirmación, nos gustaría tener una retroalimentación sobre el resultado de la compilación, las pruebas de linter y unit / e2e, etc. Por esa razón, debemos crear
yml
archivos en la carpeta: .github/workflows
(por ejemplo :) .github/workflows/build.yml
con definición de pasos.
Angular 8
Para una aplicación angular, nuestro archivo debería verse en el fragmento de abajo.
nombre: Compilar en: empujar: ramas-ignorar: maestro env: NODE_VERSION: '10 .x ' trabajos: compilar: nombre: Compilar Angular ejecuta: ubuntu-últimos pasos: - usos: acciones / pago @ maestro - nombre: Usar Node.js $ {{env.NODE_VERSION}} utiliza: actions / setup-node @ v1 con: node-version: $ {{env.NODE_VERSION}} - nombre: Instala las dependencias ejecutadas: npm install - nombre: Lint run: npm ejecutar lint - nombre: Build ejecutar: npm run build - --prod - nombre: Pruebas unitarias ejecutar: npm run test - nombre: E2E tests ejecutar: npm ejecutar e2e
Tenemos que definir la versión NodeJS. Vamos a ejecutar nuestra compilación en el servidor ubuntu. Y tenemos algunos pasos que debemos reconocer si estamos familiarizados con el desarrollo de aplicaciones angulares.
También ejecutamos esa configuración solo para ramas distintas de entonces
master
. Para la master
sucursal tenemos una configuración separada (con implementación en Azure).
.NET Core 3
El archivo de definición de acciones de GitHub para .NET Core también es muy simple.
nombre: Compilar en: empujar: ramas-ignorar: trabajos maestros : compilar: nombre: Compilar .NET Core ejecuta: ubuntu-últimos pasos: - usos: acciones / verificación @ v1 - nombre: Configurar .NET Core utiliza: acciones / setup-dotnet @ v1 con: dotnet-version: 3.0.100 - nombre: Construir directorio de trabajo: ./src/Application.Api run: dotnet build --configuration Debug - nombre: Unidad prueba directorio de trabajo: ./tests/ Application.Api.Tests corren: prueba dotnet
También definimos que la configuración particular se debe ejecutar en ramas diferentes a las que se encuentran
master
. Estamos usando Ubuntu Y todos los pasos deberían ser familiares para los desarrolladores de .NET.Despliegue continuo
La implementación continua desplegará nuestras aplicaciones a nuestro proveedor de alojamiento. A continuación hay un ejemplo de cómo configurar GitHub con Azure.
Requisito previo
En primer lugar, tenemos que exportar los perfiles de publicación de Azure (desde nuestras páginas de inicio de WebApps).
Luego, tenemos que crear en la página Secretos de GitHub nuevos secretos (en mi caso, secretos separados para ambas aplicaciones, porque son aplicaciones web separadas en Azure). Es importante guardar el nombre secreto, porque lo usaremos en nuestra configuración de CD.
Eso es todo . Ahora podemos configurar las acciones de GitHub para su implementación en Azure.
Acciones de GitHub para CD
Configuraremos dos configuraciones de implementaciones continuas.
Angular 8
Para la aplicación angular, tenemos un
yml
archivo como el siguiente fragmento.nombre: Implementar en Azure en: push: sucursales: - master env: AZURE_WEBAPP_NAME: application-web AZURE_WEBAPP_PACKAGE_PATH: './dist/ApplicationWeb' NODE_VERSION: '10 .x ' jobs: build-and-deploy: name: Build and Deploy runs -on: ubuntu-últimos pasos: - usa: actions / checkout @ master - nombre: Use Node.js $ {{env.NODE_VERSION}} usa: actions / setup-node @ v1 con: node-version: $ {{env .NODE_VERSION}} - nombre: ejecutar dependencias ejecutar: npm install - nombre : compilar ejecutar: npm ejecutar compilar - --prod - nombre: 'Implementar en Azure WebApp' utiliza: azure / webapps-deploy @ v1 con: nombre-aplicación: $ {{env.AZURE_WEBAPP_NAME}} publicar-perfil: $ {{secrets.AZURE_WEBAPP_PUBLISH_PROFILE}} paquete: $ {{env .AZURE_WEBAPP_PACKAGE_PATH}}
Los primeros pasos son similares a la configuración de compilación de CI (primero tenemos que compilar nuestra aplicación). Pero el último paso es el paso creado con
azure/webapps-deploy
flujo de trabajo. Tenemos que configurar:app-name
- nombre de la aplicación en Azurepublish-profie
- nombre del secreto de GitHubpackage
- ruta al directorio de la que nos gustaría implementar (en el ejemplo anterior:./dist/ApplicationWeb
.
Y eso es. Realmente claro y simple!
.NET Core 3
Para .NET Core nuestro archivo de configuración es muy similar.
nombre: Implementar en Azure
en:
push:
sucursales:
- master
env:
AZURE_WEBAPP_NAME: application-api
AZURE_WEBAPP_PACKAGE_PATH: './src/Application.Api/bin/Release/netcoreapp3.0'
NODE_VERSION: '10 .x '
jobs:
build- and-deploy:
name: Build and Deploy
ejecuta: ubuntu-últimos
pasos:
- usos: actions / checkout @ v1
- nombre: Configuración .NET Core
usa: actions / setup-dotnet @ v1
con:
dotnet-version: 3.0. 100
- nombre: Construir
directorio de trabajo: ./src/Application.Api
run: dotnet build --configuration Release
- nombre: 'Implementar en Azure WebApp'
utiliza: azure / webapps-deploy @ v1
con:
nombre-aplicación: $ {{env.AZURE_WEBAPP_NAME}}
publicar-perfil: $ {{secrets.AZURE_WEBAPP_PUBLISH_PROFILE}}
paquete: $ {{env .AZURE_WEBAPP_PACKAGE_PATH}}
Primero necesitamos construir nuestra aplicación y luego podemos implementar nuestros ensamblados en Azure.
Resumen
Después de crear nuestros flujos de trabajo en las acciones de GitHub que tengo en la página de GitHub como en la imagen de abajo.
Por lo tanto, tengo información realmente limpia sobre mis resultados de CI / CD. Y tengo que decir que es realmente rápido. Por supuesto, GitHub Action tendrá un impacto positivo en mis repositorios de GitHub y en mi trabajo. Gracias GitHub!
0 Comentarios