Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Compila aplicaciones de Node.js

En esta página, se describe cómo configurar Cloud Build para compilar y probar tus aplicaciones de Node.js. Si estás dando los primeros pasos en Cloud Build, lee primero las guías de inicio rápido y la descripción general de la configuración de compilación.

Cloud Build permite usar cualquier imagen de contenedor disponible a nivel público para ejecutar tareas. La imagen node de Docker Hub pública viene preinstalada con las herramientas de npm y yarn. Se puede configurar Cloud Build para compilar el proyecto de Node.js con estas herramientas.

Antes de comenzar

En las instrucciones de esta página, se da por hecho que estás familiarizado con Node.js. Además, ten en cuenta la siguiente información:

  • Ten el proyecto Node.js a mano, incluidos los archivos package.json y test.js.
  • Asegúrate de que el archivo package.json incluya una secuencia de comandos start y una test.
  • Para ejecutar los comandos de gcloud en esta página, instala la herramienta de línea de comandos de gcloud.

Compila con npm o yarn

Para ejecutar tareas en la imagen node de Docker Hub, especifica la URL de la imagen en el campo name del archivo de configuración de Cloud Build. Cloud Build inicia el contenedor especificado en el campo name mediante el punto de entrada predeterminado de la imagen. Para anular el punto de entrada predeterminado y definir cómo se debe ejecutar el paso de compilación cuando se invoca, agrega un campo entrypoint en el paso de compilación. La imagen node en Docker Hub viene preinstalada con las herramientas de npm y yarn. Especifica las herramientas en el campo entrypoint para invocarlas como el punto de entrada del paso de compilación.

En el siguiente ejemplo de archivo de configuración de compilación, se dan las siguientes situaciones:

  • En el campo name, se especifica que Cloud Build usa la imagen node de Docker Hub para ejecutar la tarea. Cuando especificas la imagen node, puedes omitir la versión del nodo por defecto a :latest o especificar una versión de nodo para usar una versión específica. Por ejemplo, name: node usará la versión más reciente del nodo, y name: node:12 usará node:12.
  • En el campo entrypoint, se especifica que la herramienta npm o yarn se usa cuando se invoca la imagen node.

npm

  steps:
  - name: node
    entrypoint: npm

yarn

  steps:
  - name: node
    entrypoint: yarn

Configura compilaciones de Node.js

  1. En el directorio raíz del proyecto, crea un archivo de configuración llamado cloudbuild.yaml.

  2. Instala dependencias: Antes de compilar la aplicación, debes asegurarte de que todas las dependencias del proyecto estén instaladas desde npm o yarn. Puedes instalar dependencias mediante el comando install dentro del paso de compilación npm o yarn. En el campo args de un paso de compilación, se toma una lista de argumentos y se los pasa a la imagen a la que hace referencia el campo de nombre. En el archivo de configuración de compilación, agrega install al campo args para invocar el comando install:

    npm

    steps:
    - name: node
      entrypoint: npm
      args: ['install']
    

    yarn

    steps:
    - name: node
      entrypoint: yarn
      args: ['install']
    
  3. Agrega pruebas: Si definiste una secuencia de comandos test en package.json, puedes configurar Cloud Build para que ejecute la secuencia mediante la agregación de test al campo args:

    npm

    steps:
    - name: node
      entrypoint: npm
      args: ['install']
    - name: node
      entrypoint: npm
      args: ['test']
    

    yarn

    steps:
    - name: node
      entrypoint: yarn
      args: ['install']
    - name: node
      entrypoint: yarn
      args: ['test']
    
  4. Ejecuta comandos personalizados: Si package.json contiene comandos personalizados, puedes configurar Cloud Build para ejecutar ese comando. En el campo args, agrega run como primer argumento seguido del nombre del comando personalizado. El siguiente archivo de configuración de compilación tiene argumentos para ejecutar un comando personalizado llamado build:

    npm

    steps:
    - name: node
      entrypoint: npm
      args: ['install']
    - name: node
      entrypoint: npm
      args: ['test']
    - name: node
      entrypoint: npm
      args: ['run', 'build']
    

    yarn

    steps:
    - name: node
      entrypoint: yarn
      args: ['install']
    - name: node
      entrypoint: yarn
      args: ['test']
    - name: node
      entrypoint: yarn
      args: ['run', 'build']
    
  5. Usa este comando para comenzar a compilar mediante el archivo de configuración de compilación:

    gcloud builds submit --config [CONFIG_FILE_PATH] [SOURCE_DIRECTORY]
    

    En el ejemplo anterior, se ilustra lo siguiente:

    • [CONFIG_FILE_PATH] es la ruta de acceso al archivo de configuración de compilación.
    • [SOURCE_DIRECTORY] es la ruta o la URL del código fuente.

    Si no se especifica [CONFIG_FILE_PATH] ni [SOURCE_DIRECTORY] en el comando gcloud builds submit, Cloud Build da por hecho que el archivo de configuración y el código fuente están en el directorio de trabajo actual.

Ejecuta pruebas en varias versiones de node

En ocasiones, es necesario asegurarse de que el proyecto funcione en varias versiones de node. Puedes crear y configurar activadores de Cloud Build de modo que se den las siguientes situaciones:

  • En el archivo de configuración de compilación, especifica la versión de node como una variable de sustitución.
  • Crea un activador para cada versión de node con la que desees compilar la aplicación.
  • En cada una de las opciones de configuración del activador, usa el campo de valor de la variable de sustitución a fin de indicar la versión de node de ese activador.

En los siguientes pasos, se explica cómo especificar la versión de node mediante variables de sustitución específicas del activador:

  1. En la raíz del repositorio, agrega un archivo de configuración de compilación, en el que se especifique la versión de node como una variable de sustitución. En el siguiente ejemplo de archivo de configuración de compilación, $_NODE_VERSION es una variable de sustitución definida por el usuario:

    npm

    steps:
    - name: node:$_NODE_VERSION
      entrypoint: npm
      args: ['install']
    - name: node:$_NODE_VERSION
      entrypoint: npm
      args: ['test']
    

    yarn

    steps:
    - name: node:$_NODE_VERSION
      entrypoint: yarn
      args: ['install']
    - name: node:$_NODE_VERSION
      entrypoint: yarn
      args: ['test']
    
  2. Para cada versión de node que desees compilar, crea un activador de compilación mediante los siguientes pasos:

    1. Abre la página Activadores en Google Cloud Console:

      Abrir la página Activadores

    2. Selecciona el proyecto en el menú desplegable del selector de proyectos, que se ubica en la parte superior de la página.

    3. Haz clic en Abrir.

    4. Haz clic en Crear activador.

      En la página Crear activador, ingresa la siguiente configuración:

      1. Ingresa un nombre para el activador.

      2. Selecciona el evento del repositorio para iniciar el activador.

      3. Selecciona el repositorio que contenga el código fuente y el archivo de configuración de compilación.

      4. Especifica la regex de la rama o el nombre de la etiqueta que iniciará el activador.

      5. Configuración de compilación: Elige el archivo de configuración de compilación que creaste con anterioridad.

      6. En Variables de sustitución, haz clic en Agregar variable.

        1. En Variable, especifica la variable de versión de node que usaste en el archivo de configuración de compilación, y, en Valor, especifica la versión del node. Por ejemplo, _NODE_VERSION12.
    5. Haz clic en Crear para guardar el activador de compilación.

Puedes usar estos activadores para compilar el código en la versión del node que especificaste en el activador.

Ejemplos de código

Estos son algunos repositorios de muestra. Cada uno contiene una aplicación de Node.js de muestra y un archivo de configuración de compilación para compilar y probar esa aplicación:

  • node-example-npm: Una app de Node.js y un archivo de configuración de compilación de ejemplo para compilar la app con npm.
  • node-example-yarn: Una app de Node.js y un archivo de configuración de compilación de ejemplo para compilar la app con yarn.
  • multiple-node-versions-example: Un ejemplo con un archivo de configuración de compilación para compilar la app con varias versiones del node.

¿Qué sigue?