Creación de una canalización de CI/CD en Azure Pipelines para Node.js con Azure DevOps Starter
En este inicio rápido, va a crear una aplicación web progresiva (PWA) de NodeJS mediante GatsbyJS y la experiencia simplificada de creación de Azure DevOps Starter. Cuando termine, tendrá una canalización de integración continua (CI) y entrega continua (CD) para la PWA en Azure Pipelines. Azure DevOps Starter configura los componentes necesarios para el desarrollo, la implementación y la supervisión.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Una organización de Azure DevOps.
Inicio de sesión en Azure Portal
DevOps Starter crea una canalización de CI/CD en Azure Pipelines. Puede crear una organización de Azure DevOps nueva o usar una existente. DevOps Starter también crea recursos de Azure en la suscripción a Azure que prefiera.
Inicie sesión en Azure Portal y, en el panel izquierdo, seleccione Crear un recurso.
En el cuadro de búsqueda, escriba DevOps Starter y, después, selecciónelo. Haga clic en Agregar para crear un recurso.
Seleccione una aplicación de ejemplo y el servicio de Azure
Seleccione la aplicación de ejemplo de Node.js.
El marco de trabajo de ejemplo predeterminado es Express.js. Cambie la selección a Simple Node.js App (Aplicación de Node.js sencilla) y seleccione Siguiente.
Los destinos de implementación disponibles en este paso vienen determinados por el marco de trabajo de la aplicación seleccionado en el paso 2. En este ejemplo, Windows Web App (Aplicación web de Windows) es el destino de implementación predeterminado. Deje establecido Web App for Containers y seleccione Siguiente.
Configuración de un nombre de proyecto y una suscripción de Azure
En el paso final del flujo de trabajo de creación de DevOps Starter, asigne un nombre de proyecto, seleccione una suscripción de Azure y elija Listo.
Mientras se compila el proyecto y la aplicación se implementa en Azure, se muestra una página de resumen. Después de un breve período, se crea un proyecto en la organización de Azure DevOps que incluye un repositorio de Git, un panel Kanban, una canalización de implementación, planes de pruebas y los artefactos que requiere la aplicación.
Administración del proyecto
Vaya a Todos los recursos y busque DevOps Starter. Seleccione DevOps Starter.
Se le dirige a un panel donde puede ver la página principal del proyecto, el repositorio de código, la canalización de CI/CD y un vínculo a la aplicación en ejecución. Seleccione la página principal del proyecto para ver la aplicación en Azure DevOps y, en otra pestaña del explorador, seleccione el punto de conexión de la aplicación para ver la aplicación de ejemplo en vivo. Más adelante se cambiará este ejemplo para usar la PWA generada por GatsbyJS.
En el proyecto de Azure DevOps, puede invitar a los miembros del equipo a colaborar y establecer un panel Kanban para empezar a realizar el seguimiento del trabajo. Para más información, consulte esta página.
Clonación del repositorio e instalación de la PWA de Gatsby
DevOps Starter crea un repositorio de Git en Azure Repos o GitHub. En este ejemplo se ha creado un repositorio de Azure. El siguiente paso consiste en clonar el repositorio y realizar cambios.
Seleccione Repos en su proyecto de DevOps y, luego, haga clic en Clonar. Hay varios mecanismos para clonar el repositorio de Git en el escritorio. Elija el que mejor se adapte a su experiencia de desarrollo.
Después de clonar el repositorio en el escritorio, realice algunos cambios en la plantilla de inicio. Para empezar, instale la CLI de GatsbyJS desde el terminal.
npm install -g gatsby
En el terminal, vaya a la raíz del repositorio. Debe contener tres carpetas parecidas a estas:
Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2/23/2020 10:42 PM Application d----- 2/23/2020 3:05 PM ArmTemplates d----- 2/23/2020 3:05 PM Tests
No se necesitan todos los archivos de la carpeta Application porque se va a reemplazar por una plantilla de inicio de Gatsby. Ejecute los siguientes comandos, en secuencia, para recortarla.
cp .\Application\Dockerfile . rmdir Application
Use la CLI de Gatsby para generar una PWA de ejemplo. Ejecute
gatsby new
desde el terminal para iniciar el asistente para PWA y seleccionegatsby-starter-blog
como la plantilla de inicio. Debe parecerse a este ejemplo:c:\myproject> gatsby new √ What is your project called? ... my-gatsby-project ? What starter would you like to use? » - Use arrow-keys. Return to submit. gatsby-starter-default gatsby-starter-hello-world > gatsby-starter-blog (Use a different starter)
Ahora tiene una carpeta denominada
my-gatsby-project
. Cambie su nombre porApplication
y copie en ellaDockerfile
.mv my-gatsby-project Application mv Dockerfile Application
En el editor que prefiera, abra Dockerfile y cambie la primera línea de
FROM node:8
aFROM node:12
. Este cambio garantiza que el contenedor usa la versión 12.x de Node.js en lugar de la versión 8.x. GatsbyJS requiere versiones más modernas de Node.js.A continuación, abra el archivo package.json en la carpeta Application y edite el campo de scripts para asegurarse de que los servidores de desarrollo y producción escuchan en todas las interfaces de red disponibles (por ejemplo, 0.0.0.0) y el puerto 80. Sin esta configuración, el servicio de aplicaciones de contenedor no puede enrutar el tráfico a la aplicación de Node.js que se ejecuta dentro del contenedor. El campo
scripts
debe parecerse al que se muestra a continuación. En concreto, quiere cambiar los valores predeterminados dedevelop
,serve
ystart
."scripts": { "build": "gatsby build", "develop": "gatsby develop -H 0.0.0.0 -p 80", "format": "prettier --write \"**/*.{js,jsx,json,md}\"", "start": "npm run serve", "serve": "npm run build && gatsby serve -H 0.0.0.0 -p 80", "clean": "gatsby clean", "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1" }
Edición de las canalizaciones de CI/CD
Antes de confirmar el código de la sección anterior, realice algunos cambios en las canalizaciones de compilación y versión. Edite la canalización de compilación y actualice la tarea de Node para usar la versión 12.x de Node.js. Establezca el campo Task version (Versión de tarea) en 1.x y el campo Version (Versión) en 12.x.
En este inicio rápido, no se van a crear pruebas unitarias, así que se van a deshabilitar esos pasos en la canalización de compilación. Cuando escriba las pruebas, puede volver a habilitar estos pasos. Haga clic con el botón derecho para seleccionar las tareas etiquetadas Install test dependencies (Instalar dependencias de pruebas) y Run unit tests (Ejecutar pruebas unitarias) y deshabilitarlas.
Edite la canalización de versión.
Al igual que con la canalización de compilación, cambie la tarea de Node para usar 12.x y deshabilite las dos tareas de prueba. La versión debería parecerse a esta captura de pantalla.
En el lado izquierdo del explorador, vaya al archivo views/index.pug.
Seleccione Editar y, a continuación, realice un cambio en el encabezado h2. Por ejemplo, escriba Empezar a trabajar de inmediato con Azure DevOps Starter o haga cualquier otro cambio.
Seleccione Confirmar y guarde los cambios.
En el explorador, vaya al panel de DevOps Starter.
Debería ver que hay una compilación en curso. Los cambios que ha realizado se compilan e implementan automáticamente mediante una canalización de CI/CD.
Confirmación de los cambios y examen de la canalización de CI/CD de Azure
En los dos pasos anteriores, ha agregado una PWA generada por Gatsby al repositorio de Git y ha editado las canalizaciones para compilar e implementar el código. Se puede confirmar el código y ver su progreso mediante la canalización de compilación y versión.
Desde la raíz del repositorio de Git del proyecto en un terminal, ejecute los siguientes comandos para insertar el código en el proyecto de Azure DevOps:
git add . git commit -m "My first Gatsby PWA" git push
Se inicia una compilación en cuanto se completa
git push
. Puede seguir el progreso desde el panel de Azure DevOps.Al cabo de unos minutos, las canalizaciones de compilación y versión finalizarán y la PWA se implementará en un contenedor. Haga clic en el vínculo Application endpoint (Punto de conexión de la aplicación) en el panel anterior; verá un proyecto de inicio de Gatsby para blogs.
Limpieza de recursos
Puede eliminar Azure App Service y otros recursos relacionados que haya creado cuando ya no los necesite. Use la funcionalidad Eliminación del panel de DevOps Starter.
Pasos siguientes
Cuando configura el proceso de CI/CD, se crean automáticamente canalizaciones de compilación y versión. Puede modificar estas canalizaciones para satisfacer las necesidades de su equipo. Para más información acerca de la canalización de CI/CD, consulte: