Configure este flujo de trabajo para implementar automáticamente su aplicación en producción y optimizar su proceso de lanzamiento.
Netlify es una plataforma de alojamiento web y un conjunto completo de herramientas para implementar y administrar aplicaciones web en la nube.
Pero sus funciones van mucho más allá: sus funciones sin servidor le permiten ejecutar código del lado del servidor sin un servidor dedicado.
Explore cómo configurar una canalización de CI/CD para implementar una API REST de Node.js en Netlify mediante GitHub Actions.
Canalizaciones de CI/CD con acciones de GitHub: descripción general
Las canalizaciones de integración continua y entrega continua (CI/CD) son una serie de procesos secuenciales y automatizados por los que pasan las aplicaciones de software antes de enviarse a producción.
Por lo general, las canalizaciones de CI/CD constan de varias fases clave, incluidas las fases de fuente, compilación, prueba e implementación.
Si bien es posible realizar estas fases manualmente, automatizarlas ofrece varias ventajas, entre ellas:
- Minimizar el riesgo de errores humanos.
- Acelerar el proceso de liberación.
- Asegurar un flujo de trabajo consistente para enviar software de calidad a producción.
¿Qué son las acciones de GitHub?
GitHub Actions es una herramienta integrada dentro de GitHub que proporciona una amplia gama de acciones preconstruidas que puede usar para definir flujos de trabajo como código directamente en el repositorio de su proyecto para automatizar el CI/CD tuberías
También puede crear acciones personalizadas para satisfacer las necesidades específicas de su proyecto, lo que le permite crear e implementar aplicaciones en producción sin problemas. Una de las ventajas de GitHub Actions es su perfecta integración con otras características de GitHub, como las solicitudes de incorporación de cambios y el seguimiento de problemas.
Esto hace posible activar flujos de trabajo basados en eventos específicos, como una nueva confirmación, lo que garantiza que sus canalizaciones de CI/CD se activen automáticamente cuando sea necesario.
Configurar el proyecto Node.js
Para comenzar, debe crear un servidor web Express. Para hacerlo, cree una nueva carpeta localmente y cambie el directorio en su terminal.
mkdir express-netlify
cd express-netlify
A continuación, cree un paquete.json archivo usando npm, el administrador de paquetes de nodos.
npm inicializar -y
Finalmente, instale las dependencias requeridas en el proyecto.
npm install express netlify-lambda serverless-http
El netlify-lambda El paquete sirve como un servidor de desarrollo local que facilita la prueba de funciones sin servidor. http sin servidor ayuda a adaptar las aplicaciones Express.js a un formato que sea compatible con los controladores de funciones sin servidor.
Netlify no proporciona soporte nativo para alojar y ejecutar aplicaciones de back-end completas. En cambio, ofrece funciones sin servidor como una solución alternativa para manejar la funcionalidad de back-end.
Estas funciones administran la lógica del lado del servidor, manejan las solicitudes de la API HTTP y entregan contenido dinámico, lo que proporciona una funcionalidad similar a la del servidor dentro del paradigma sin servidor.
Puedes encontrar el código de este proyecto en su repositorio GitHub.
Crear el servidor web rápido
Crea tres carpetas: dist, funciones, y origen en el directorio raíz de la carpeta de su proyecto.
Antes de configurar el servidor Express, cree un espacio en blanco índice.html archivo en el dist carpeta. Este archivo actúa como un marcador de posición que permite que Netlify implemente con éxito la aplicación Express y sirva las rutas API.
Ahora, crea un src/aplicación.js archivo y agregue el siguiente código:
constante expresar = requerir("expresar");
constante sin servidor = requerir("http sin servidor");constante aplicación = expreso();
constante enrutador = expreso. enrutador();enrutador.get("/", (requerido, res) => {
res.enviar("¡Hola Mundo!")
});aplicación.uso(`/.netlify/funciones/aplicación`, enrutador);
módulo.exportaciones = aplicación;
módulo.exports.handler = sin servidor (aplicación);
Este código define un servidor Express con una ruta única para la URL raíz que maneja las solicitudes GET. El app.uso La función registra el middleware de la ruta con la aplicación Express, asegurando que cualquier solicitud HTTP realizada a la ruta
En consecuencia, si agrega un nuevo punto final como /api/auth, será accesible en
Esto permite realizar pruebas locales del servidor y garantiza que pueda implementarlo como una función sin servidor en Netlify.
Definir el archivo Netlify.toml
En el directorio raíz, cree un nuevo Netlify.toml archivo y agregue el siguiente código.
[construir]
base = "/"
comando = "npm ejecutar compilación"
publicar = "/dist/"
funciones = "funciones/"
[construir.entorno]
NODO_VERSIÓN = "16"
[funciones]
módulos_nodos_externos = ["expresar"]
node_bundler = "esbuild"
[[redirecciona]]
fuerza = verdadero
desde = "/api/*"
estado = 200
a = "/.netlify/funciones/aplicación/:splat"
[[redirecciona]]
desde = "/*"
estado = 200
a = "/index.html"
El código especifica los ajustes de configuración de compilación e implementación para la aplicación Express en Netlify. Incluye configuraciones como el directorio base, el comando de compilación, el directorio de publicación y el directorio de funciones.
Además, define la configuración de redireccionamiento que debe administrar el enrutamiento de las solicitudes de API HTTP, lo que garantiza que se dirijan correctamente a las funciones sin servidor de Netlify.
Actualice el archivo Package.json
Abre el paquete.json archivo y agregue estos comandos al objeto scripts.
"guiones": {
"comenzar": "netlify-lambda servir src",
"construir": "netlify-lambda build src"
},
Ejecute los siguientes comandos para compilar e iniciar la aplicación localmente.
compilación de ejecución de npm
npm inicio de ejecución
El servidor se iniciará en el puerto 9000. Puede continuar y probar la API usando Postman haciendo solicitudes a http://localhost: 9000/.netlify/funciones/aplicación
Finalmente, antes de configurar el flujo de trabajo de GitHub Actions para automatizar implementaciones en Netlify, crear un repositorio en GitHuby envíe los archivos del proyecto.
Implemente la aplicación Express en Netlify
Primero, implemente la API en Netlify antes de configurar el flujo de trabajo de GitHub Actions. Siga estos pasos para implementar la aplicación Express en Netlify.
- Dirigirse a netlizar y crear una cuenta e iniciar sesión en el Descripción general página.
- Seleccione y haga clic en el Sitios pestaña.
- Clickea en el Importar desde Git botón y seleccione GitHub como plataforma de proveedor de Git. Netlify le pedirá que se autentique con GitHub para otorgarle acceso a su cuenta y a los repositorios del proyecto.
- Seleccione el repositorio de proyectos Express de la lista de repositorios mostrados.
- Después de seleccionar el repositorio, debe configurar los ajustes de compilación para el proceso de implementación. Netlify simplifica este proceso al detectar automáticamente la tecnología utilizada para construir la aplicación y rellena previamente los campos con la configuración de construcción requerida. En este caso, el comando de compilación, la publicación y el directorio de funciones.
- Por último, haga clic en el Sitio de implementación botón para completar el proceso.
Crear un flujo de trabajo de acciones de GitHub
Clickea en el Comportamiento pestaña en el repositorio de GitHub de su proyecto. En el Integración continua sección, seleccione y haga clic en Configurar Node.js flujo de trabajo.
Desde el editor de GitHub, cambie el nombre del archivo a Netlify.yml, elimine el código de flujo de trabajo repetitivo de Node.js y agregue el siguiente código:
nombre:ConstruiryDesplegaranetlizar
en:
empujar:
solicitud de extracción:
trabajos:
construir:
se ejecuta en:ubuntu-22.04
pasos:
-usos:acciones/pago@v3# (Construir en ./dist u otro directorio... )
-nombre:Desplegaranetlizar
usos:nwtgck/[email protected]
con:
publicar-dir:'./dist'
rama de producción:principal
token de github:${{misterios. GITHUB_TOKEN}}
mensaje de despliegue:"Implementar desde acciones de GitHub"
habilitar-extracción-solicitud-comentario:FALSO
habilitar-commit-comentario:verdadero
sobrescribe-extracción-solicitud-comentario:verdadero
env:
NETLIFY_AUTH_TOKEN:${{misterios. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{misterios. NETLIFY_SITE_ID}}
tiempo de espera-minutos:1
Aquí hay un desglose de las propiedades del flujo de trabajo:
- en: eventos que activan las acciones en este flujo de trabajo.
- trabajos: Especifica el evento que debe ejecutar una acción en particular, que son: los eventos de compilación e implementación.
- se ejecuta en: el entorno de producción anfitrión para la acción.
- pasos: Especifica una serie de pasos necesarios para realizar un trabajo en particular.
- con: Define los argumentos necesarios para que las acciones se ejecuten correctamente.
- env: especifica las variables de entorno necesarias para el flujo de trabajo.
Finalmente, confirme las actualizaciones realizadas en este archivo. GitHub debería activar automáticamente el flujo de trabajo.
Sin embargo, la compilación inicial generará un error, ya que debe agregar variables secretas requeridas por el flujo de trabajo: el ID del sitio implementado y el token de autenticación de Netlify. Dirígete a tu Configuración del sitio en Netlify y copiar el Identificación del sitio.
Para obtener el token de autenticación, haga clic en el perfil del usuario icono y seleccione el Ajustes de usuario opción de la ventana desplegable. En la página de configuración, seleccione Aplicacionesy haga clic en Nuevo token de acceso para generar su token de autenticación.
Agregue las dos variables de entorno como NETLIFY_SITE_ID y NETLIFY_AUTH_TOKEN a las secciones de variables de entorno y secretos del repositorio en su repositorio de GitHub. Después de realizar estos cambios, vuelva a ejecutar el flujo de trabajo. Netlify implementará automáticamente cualquier cambio subsiguiente que envíe utilizando esta canalización.
Continúe y pruebe la API usando Postman haciendo solicitudes a esta URL:
Configuración de canalizaciones de CI/CD con acciones de GitHub y Netlify
Al utilizar las funciones sin servidor de Netlify, puede implementar aplicaciones web completas que abarcan tanto la funcionalidad del lado del cliente como la del back-end en Netlify.
Además, la configuración de canalizaciones de CI/CD para aplicaciones con GitHub Actions ofrece un enfoque simplificado para automatizar el proceso de creación e implementación. Esto le permite definir flujos de trabajo que garantizan un proceso de desarrollo confiable y sin inconvenientes, desde la ideación hasta la etapa de lanzamiento.