Cette page a été traduite par l'API Cloud Translation.
Switch to English

Créer des applications Node.js

Cette page explique comment configurer Cloud Build pour compiler et tester vos applications Node.js. Si vous débutez avec Cloud Build, commencez par lire les guides de démarrage rapide et la page Présentation de la configuration des compilations.

Cloud Build permet d'exécuter vos tâches à l'aide de n'importe quelle image de conteneur disponible publiquement. L'image node publique de Docker Hub est fournie avec les outils npm et yarn préinstallés. Vous pouvez configurer Cloud Build pour compiler votre projet Node.js à l'aide de ces outils.

Avant de commencer

Les instructions de cette page partent du principe que vous connaissez bien Node.js. Notez en outre les points suivants :

  • Gardez à portée de main votre projet Node.js, y compris les fichiers package.json et test.js.
  • Assurez-vous que votre fichier package.json contient bien un script start et un script test.
  • Pour exécuter les commandes gcloud sur cette page, installez l'outil de ligne de commande gcloud.

Compiler avec npm ou yarn

Pour exécuter vos tâches dans l'image node de Docker Hub, spécifiez l'URL de l'image dans le champ name du fichier de configuration Cloud Build. Cloud Build démarre le conteneur spécifié dans le champ name en utilisant le point d'entrée par défaut de l'image. Pour remplacer ce point d'entrée par défaut et définir comment exécuter l'étape de compilation lorsqu'elle est appelée, ajoutez un champ entrypoint à l'étape de compilation. L'image node de Docker Hub est fournie avec les outils npm et yarn préinstallés. Spécifiez les outils dans le champ entrypoint afin de pouvoir les appeler en tant que points d'entrée de votre étape de compilation.

Dans l'exemple de fichier de configuration de compilation suivant :

  • Le champ name indique que l'image node de Docker Hub est utilisée par Cloud Build pour exécuter votre tâche. Lorsque vous spécifiez l'image node, vous pouvez soit omettre de renseigner la version de nœud afin d'utiliser la version par défaut :latest, soit indiquer une version de nœud afin d'utiliser cette version spécifique. Par exemple, name: node utilisera la dernière version de nœud, tandis que name: node:12 utilisera la version node:12.
  • Le champ entrypoint indique que l'outil npm ou yarn est utilisé lorsque l'image node est appelée.

npm

  steps:
  - name: node
    entrypoint: npm

yarn

  steps:
  - name: node
    entrypoint: yarn

Configurer les compilations Node.js

  1. Dans le répertoire racine de votre projet, créez un fichier de configuration nommé cloudbuild.yaml.

  2. Installer les dépendances : avant de pouvoir compiler votre application, vous devez vous assurer que toutes les dépendances de votre projet sont installées à partir de npm ou yarn. Vous pouvez installer des dépendances à l'aide de la commande install dans l'étape de compilation npm ou yarn. Le champ args d'une étape de compilation prend une liste d'arguments et la transmet à l'image à laquelle le champ de nom fait référence. Dans votre fichier de configuration de compilation, ajoutez install au champ args pour appeler la commande install :

    npm

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

    yarn

    steps:
    - name: node
      entrypoint: yarn
      args: ['install']
    
  3. Ajouter des tests : si vous avez défini un script de test dans votre fichier package.json, vous pouvez configurer Cloud Build pour qu'il exécute le script en ajoutant l'argument test au champ 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. Exécuter des commandes personnalisées : si votre fichier package.json contient des commandes personnalisées, vous pouvez configurer Cloud Build pour qu'il exécute ces commandes. Dans le champ args, ajoutez run en tant que premier argument suivi du nom de la commande personnalisée. Le fichier de configuration de compilation suivant contient des arguments permettant d'exécuter une commande personnalisée appelée 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. Lancez la compilation à l'aide du fichier de configuration de compilation :

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

    Où :

    • [CONFIG_FILE_PATH] est le chemin d'accès du fichier de configuration de compilation
    • [SOURCE_DIRECTORY] est le chemin d'accès ou l'URL du code source.

    Si vous ne spécifiez pas les éléments [CONFIG_FILE_PATH] et [SOURCE_DIRECTORY] dans la commande gcloud builds submit, Cloud Build considère que le fichier de configuration et le code source se trouvent dans le répertoire de travail actuel.

Exécuter des tests sur plusieurs versions de node

Il est parfois nécessaire de s'assurer que votre projet fonctionne avec plusieurs versions de node. Vous pouvez créer et configurer des déclencheurs Cloud Build dotés des caractéristiques suivantes :

  • Dans votre fichier de configuration de compilation, spécifiez la version de node en tant que variable de substitution.
  • Créez un déclencheur pour chaque version de node avec laquelle vous souhaitez compiler votre application.
  • Dans les paramètres de chaque déclencheur, utilisez le champ de valeur de la variable de substitution pour indiquer la version de node à utiliser pour ce déclencheur.

Les étapes suivantes expliquent comment spécifier la version de node à l'aide de variables de substitution spécifiques au déclencheur :

  1. Dans la racine de votre dépôt, ajoutez un fichier de configuration de compilation qui spécifie la version de node en tant que variable de substitution. Dans l'exemple de fichier de configuration de compilation suivant, $_NODE_VERSION est une variable de substitution définie par l'utilisateur :

    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. Pour chaque version de node avec laquelle vous souhaitez effectuer une compilation, créez un déclencheur de compilation en suivant les étapes ci-dessous :

    1. Ouvrez la page Déclencheurs dans Google Cloud Console :

      Ouvrir la page Déclencheurs

    2. Sélectionnez votre projet dans le menu déroulant du sélecteur de projet, en haut de la page.

    3. Cliquez sur Ouvrir.

    4. Cliquez sur Créer un déclencheur.

      Sur la page Créer un déclencheur, saisissez les paramètres suivants :

      1. Nommez votre déclencheur.

      2. Sélectionnez l'événement de dépôt pour démarrer le déclencheur.

      3. Sélectionnez le dépôt contenant le code source et le fichier de configuration de compilation.

      4. Indiquez l'expression régulière correspondant au nom de la branche ou du tag qui démarrera votre déclencheur.

      5. Configuration de la compilation : sélectionnez le fichier de configuration créé précédemment.

      6. Sous Variables de substitution, cliquez sur Ajouter une variable.

        1. Dans Variable, spécifiez la variable de version de node que vous avez utilisée dans le fichier de configuration de compilation et dans Valeur, renseignez la version de node. Par exemple, _NODE_VERSION et 12.
    5. Cliquez sur Créer pour enregistrer le déclencheur de compilation.

Vous pouvez utiliser ces déclencheurs pour compiler votre code avec la version de node spécifiée dans le déclencheur.

Exemples de code

Voici quelques exemples de dépôts, contenant chacun un exemple d'application Node.js et un fichier de configuration de compilation permettant de compiler et tester cette application :

  • node-example-npm : une application Node.js et un exemple de fichier de configuration permettant de compiler l'application avec npm.
  • node-example-yarn : une application Node.js et un exemple de fichier de configuration permettant de compiler l'application avec yarn.
  • multiple-node-versions-example : exemple comportant un fichier de configuration permettant de compiler l'application avec plusieurs versions de node.

Étape suivante