Node.js-Anwendungen erstellen und testen

Auf dieser Seite wird erläutert, wie Sie Node.js mit Cloud Build erstellen und testen können Sie erstellte Artefakte in einem npm-Repository in Artifact Registry speichern und Informationen zur Build-Herkunft zu generieren.

Mit Cloud Build können Sie jedes öffentlich verfügbare Container-Image zur Ausführung Ihrer Aufgaben verwenden. Die Öffentlichkeit node-Image aus Docker Hub npm-Tool ist bereits vorinstalliert. Sie können Cloud Build konfigurieren um Ihr Node.js-Projekt mit diesem Tool zu erstellen.

Hinweise

Die Anleitung auf dieser Seite setzt voraus, dass Sie mit Node.js vertraut sind. Außerdem gilt:

Mit npm erstellen

Damit die Aufgaben im Image node von Docker Hub ausgeführt werden, geben Sie in der Cloud Build-Konfigurationsdatei im Feld name die Image-URL an. Cloud Build startet den im Feld name angegebenen Container mithilfe des Standardeinstiegspunkts des Images. Wenn Sie den Standardeinstiegspunkt überschreiben und definieren möchten, wie der Build-Schritt ausgeführt werden soll, wenn er ausgelöst wird, fügen Sie dem Build-Schritt ein entrypoint-Feld hinzu. Das node-Image in Docker Hub wird npm-Tool ist bereits vorinstalliert. Geben Sie die Tools im Feld entrypoint an, um und ruft sie als Einstiegspunkt für den Build-Schritt auf.

Für die folgende Beispiel-Build-Konfigurationsdatei gilt:

  • Das Feld name gibt an, dass das Image node aus Docker Hub von Cloud Build zum Ausführen Ihrer Aufgabe verwendet wird. Wenn Sie die node angeben Image ist, können Sie entweder die Knotenversion auslassen, um standardmäßig :latest zu verwenden, oder Geben Sie eine Knotenversion an. um eine bestimmte Version zu verwenden. name: node verwendet beispielsweise die neuesten Version des Knotens und name: node:12 verwendet node:12.
  • Das Feld entrypoint gibt an, dass das npm-Tool verwendet wird wenn das node-Image aufgerufen wird.

     steps:
     - name: 'node'
       entrypoint: 'npm'
    

Node.js-Builds konfigurieren

  1. Erstellen Sie im Stammverzeichnis des Projekts eine Konfigurationsdatei mit dem Namen cloudbuild.yaml.

  2. Abhängigkeiten installieren: Bevor Sie Ihre Anwendung erstellen können, müssen Sie Achten Sie darauf, dass alle Abhängigkeiten Ihres Projekts aus npm installiert werden. Ich Sie können Abhängigkeiten mit dem Befehl install im Build npm installieren. Schritt. Im Feld args eines Build-Schritts wird eine Liste von Argumenten abgerufen und übergeben mit dem Bild verknüpft, auf das im Feld „Name“ verwiesen wird. In der Build-Konfigurationsdatei Fügen Sie install in das Feld args ein, um den Befehl install aufzurufen:

     steps:
     - name: 'node'
       entrypoint: 'npm'
       args: ['install']
    
  3. Tests hinzufügen: Wenn Sie in der package.json ein test-Skript definiert haben, können Sie Cloud Build so konfigurieren, dass es das Skript ausführt, indem Sie test zum Feld args hinzufügen:

     steps:
     - name: 'node'
       entrypoint: 'npm'
       args: ['install']
     - name: 'node'
       entrypoint: 'npm'
       args: ['test']
    
  4. Benutzerdefinierte Befehle ausführen: Wenn die package.json benutzerdefinierte Befehle enthält, können Sie Cloud Build für die Ausführung dieser Befehle konfigurieren. Im args fügen Sie run als erstes Argument hinzu, gefolgt vom Namen des benutzerdefinierten . Die folgende Build-Konfigurationsdatei enthält Argumente zum Ausführen einer benutzerdefinierten Befehl mit dem Namen build:

     steps:
     - name: 'node'
        entrypoint: 'npm'
        args: ['install']
     - name: 'node'
        entrypoint: 'npm'
        args: ['test']
     - name: 'node'
        entrypoint: 'npm'
        args: ['run', 'build']
    
  5. In Artifact Registry hochladen:

    Fügen Sie in Ihrer Konfigurationsdatei das Feld npmPackages hinzu und geben Sie Ihren npm an Repository in Artifact Registry:

     artifacts:
        npmPackages:
        - repository: 'https://LOCATION-npm.pkg.dev/PROJECT-ID/REPOSITORY_NAME'
          packagePath: 'PACKAGE_PATH'
    

    Ersetzen Sie die folgenden Werte:

    • LOCATION: der Standort für Ihr Repository in Artifact Registry.
    • PROJECT_ID: die ID des Google Cloud-Projekts, das enthält Ihr Artifact Registry-Repository.
    • REPOSITORY_NAME: der Name Ihres npm-Repositorys in Artifact Registry.
    • PACKAGE_PATH: Pfad für das lokale Verzeichnis mit dem npm-Paket, das Sie in Artifact Registry hochladen möchten. Mi. die Verwendung eines absoluten Pfads empfohlen. Dein PACKAGE_PATH Wert kann . sein, um das aktuelle Arbeitsverzeichnis zu verwenden, das Feld kann jedoch nicht ausgelassen oder leer gelassen werden. Dieses Verzeichnis muss eine package.json-Datei enthalten.
  6. Optional: Provenance-Generierung aktivieren

    Cloud Build kann überprüfbare SLSA-Build (Supply Chain Levels for Software Artifacts) Herkunftsmetadaten, um Ihre CI-Pipeline zu sichern.

    Um das Generieren von Herkunft zu ermöglichen, fügen Sie requestedVerifyOption: VERIFIED zum Abschnitt options Ihrer Konfigurationsdatei hinzu.

  7. Build starten: manuell oder Build-Trigger verwenden

    Sobald der Build abgeschlossen ist, können Sie Repository-Details ansehen. in Artifact Registry.

    Sie können sich auch Build-Herkunftsmetadaten ansehen und Herkunft prüfen.

Mehrere node-Versionen testen

Manchmal muss Ihr Projekt in mehreren Versionen von node funktionieren. Sie können Cloud Build-Trigger folgendermaßen erstellen und konfigurieren:

  • Geben Sie in der Build-Konfigurationsdatei die node-Version als eine Substitutionsvariable an.
  • Erstellen Sie einen Trigger für jede Version von node, mit der Sie Ihre Anwendung erstellen möchten.
  • Verwenden Sie in den einzelnen Triggereinstellungen das Feld für den Wert der Substitutionsvariable, um die Version von node für den jeweiligen Trigger anzugeben.

In den folgenden Schritten wird erläutert, wie Sie die node-Version mithilfe von triggerspezifischen Substitutionsvariablen angeben:

  1. Fügen Sie in Ihrem Repository-Stammverzeichnis eine Build-Konfigurationsdatei hinzu, die die nodeVersion als Substitutionsvariable verwenden. Im folgenden Beispiel Konfigurationsdatei $_NODE_VERSION ist eine benutzerdefinierte Substitutionsvariable:

     steps:
     - name: 'node:$_NODE_VERSION'
       entrypoint: 'npm'
       args: ['install']
     - name: 'node:$_NODE_VERSION'
       entrypoint: 'npm'
       args: ['test']
    
  2. Erstellen Sie für jede Version von node, für die Sie den Build erstellen möchten, einen Build-Trigger Gehen Sie dazu so vor:

    1. Öffnen Sie in der Google Cloud Console die Seite Trigger:

      Zur Seite "Trigger"

    2. Wählen Sie oben auf der Seite im Drop-down-Menü zur Projektauswahl Ihr Projekt aus.

    3. Klicken Sie auf Öffnen.

    4. Klicken Sie auf Trigger erstellen.

      Auf der Seite Erstellen Sie einen Trigger geben Sie die folgenden Einstellungen ein:

      1. Geben Sie einen Namen für den Trigger ein.

      2. Wählen Sie das Repository-Ereignis aus, das den Trigger aufrufen soll.

      3. Wählen Sie das Repository aus, das Ihren Quellcode und die Build-Konfigurationsdatei enthält.

      4. Geben Sie den regulären Ausdruck für den Zweig- oder Tag-Namen an, mit dem der Trigger gestartet wird.

      5. Konfiguration: Wählen Sie die Build-Konfigurationsdatei aus, die Sie zuvor erstellt haben.

      6. Klicken Sie unter Substitutionsvariablen auf Variable hinzufügen.

        1. Geben Sie unter Variable die node-Versionsvariable an, die Sie verwendet haben. in der Build-Konfigurationsdatei und geben Sie unter Wert die Version an. der node. Zum Beispiel: _NODE_VERSION und 12
    5. Klicken Sie auf Erstellen, um den Build-Trigger zu speichern.

Mit diesen Triggern können Sie Ihren Code in der Version von node erstellen, die Sie im Trigger festgelegt ist.

Nächste Schritte