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

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 masterPara la mastersucursal 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 masterEstamos usando Ubuntu Y todos los pasos deberían ser familiares para los desarrolladores de .NET.

Despliegue continuo

Requisito previo

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

Angular 8
Para la aplicación angular, tenemos un ymlarchivo 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-deployflujo de trabajo. Tenemos que configurar:
  • app-name - nombre de la aplicación en Azure
  • publish-profie - nombre del secreto de GitHub
  • package- 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

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!