Questa pagina spiega come utilizzare Cloud Build per creare e testare Node.js
per le applicazioni, archiviare gli artefatti creati in un repository npm in Artifact Registry e
generare informazioni sulla provenienza della build.
Cloud Build ti consente di utilizzare qualsiasi immagine container disponibile pubblicamente
per eseguire le tue attività. Il pubblico
Immagine node
da Docker Hub
è preinstallato nello strumento npm
. Puoi configurare Cloud Build
per creare il tuo progetto Node.js
con questo strumento.
Prima di iniziare
Le istruzioni riportate in questa pagina presuppongono che tu abbia familiarità con Node.js
. Inoltre:
- Conosci npm.
- Tieni a portata di mano il tuo progetto
Node.js
, tra cuipackage.json
etest.js
. - Assicurati che il file
package.json
includa uno scriptstart
e untest
lo script. - Devi conoscere come scrivere un file di configurazione di Cloud Build.
- Avere un repository npm in Artifact Registry. Se non ne hai uno, crea un nuovo repository.
- Per eseguire i comandi
gcloud
in questa pagina, installa Google Cloud CLI.
Creazione con npm
Per eseguire le tue attività nell'immagine node
da Docker Hub, specifica l'URL dell'immagine
Nel campo name
del file di configurazione di Cloud Build.
Cloud Build avvia il contenitore specificato nel campo name
utilizzando l'entrypoint predefinito dell'immagine. Per eseguire l'override del punto di ingresso predefinito
e definire come deve essere eseguito il passaggio di build quando viene richiamato,
entrypoint
nel passaggio di build. L'immagine node
in Docker Hub viene
con lo strumento npm
preinstallato. Specifica gli strumenti nel campo entrypoint
per invocarli come punto di contatto del tuo passaggio di compilazione.
Nel seguente file di configurazione di compilazione di esempio:
- Il campo
name
specifica che l'immaginenode
di Docker Hub viene utilizzata da Cloud Build per eseguire l'attività. Quando specifichi il valorenode
immagine, puoi omettere la versione del nodo impostandola su:latest
per impostazione predefinita oppure specifica una versione nodo per utilizzare una versione specifica. Ad esempio,name: node
utilizzerà la versione più recente di Node ename: node:12
utilizzerànode:12
. Il campo
entrypoint
consente di specificare che viene utilizzato lo strumentonpm
quando viene richiamata l'immaginenode
.steps: - name: 'node' entrypoint: 'npm'
Configurazione di Node.js
build in corso...
Nella directory root del progetto, crea un di configurazione denominato
cloudbuild.yaml
.Installare le dipendenze: prima di creare l'applicazione, è necessario assicurati che tutte le dipendenze del progetto siano installate da
npm
. Puoi installare le dipendenze utilizzando il comandoinstall
nel passaggio di compilazionenpm
. Il campoargs
di un passaggio di build accetta un elenco di argomenti e passaggi all'immagine a cui fa riferimento nel campo del nome. Nel file di configurazione della build, aggiungiinstall
al campoargs
per richiamare il comandoinstall
:steps: - name: 'node' entrypoint: 'npm' args: ['install']
Aggiungi test: se hai definito uno script
test
inpackage.json
, puoi configurare Cloud Build per l'esecuzione dello script aggiungendotest
al Campoargs
:steps: - name: 'node' entrypoint: 'npm' args: ['install'] - name: 'node' entrypoint: 'npm' args: ['test']
Esegui comandi personalizzati: se
package.json
contiene comandi personalizzati, puoi configurare Cloud Build per eseguire questo comando. Inargs
, aggiungirun
come primo argomento seguito dal nome dell'istanza personalizzata . Il seguente file di configurazione di compilazione contiene argomenti per eseguire un chiamatobuild
:steps: - name: 'node' entrypoint: 'npm' args: ['install'] - name: 'node' entrypoint: 'npm' args: ['test'] - name: 'node' entrypoint: 'npm' args: ['run', 'build']
Carica in Artifact Registry:
Nel file di configurazione, aggiungi il campo
npmPackages
e specifica il repository npm in Artifact Registry:artifacts: npmPackages: - repository: 'https://LOCATION-npm.pkg.dev/PROJECT-ID/REPOSITORY_NAME' packagePath: 'PACKAGE_PATH'
Sostituisci i seguenti valori:
- LOCATION: la posizione del tuo repository in Artifact Registry.
- PROJECT_ID: l'ID del progetto Google Cloud che contiene il repository Artifact Registry.
- REPOSITORY_NAME: il nome del tuo repository npm in Artifact Registry.
- PACKAGE_PATH: il percorso della directory locale
contenente il pacchetto npm che vuoi caricare in Artifact Registry. Me
consiglia di utilizzare un percorso assoluto. Il tuo
PACKAGE_PATH
il valore può essere.
per usare la directory di lavoro attuale, ma il campo non può omettere o lasciare vuoto il campo. Questa directory deve contenere un filepackage.json
.
(Facoltativo) Attiva la generazione della provenienza
Cloud Build può generare Build Livelli della catena di fornitura per artefatti software (SLSA) di provenienza dei metadati per contribuire a proteggere la pipeline di integrazione continua.
Per abilitare la generazione della provenienza, aggiungi
requestedVerifyOption: VERIFIED
alla sezioneoptions
del file di configurazione.Avvia la build: manualmente o utilizzando gli trigger di build.
Una volta completata la build, puoi visualizzare i dettagli del repository in Artifact Registry.
Puoi anche visualizzare i metadati di provenienza della build e convalidare la provenienza.
Esecuzione di test su più versioni di node
A volte è necessario assicurarsi che il progetto funzioni su più
versioni di node
. Puoi creare e configurare
trigger di Cloud Build
in modo che:
- Nel file di configurazione della build, specifica la versione
node
come variabile di sostituzione. - Crea un trigger per ogni versione di
node
in base alla quale vuoi creare la tua applicazione. - In ciascuna delle impostazioni dell'attivatore, utilizza il campo del valore della variabile di sostituzione per
indica la versione di
node
per l'attivatore in questione.
I passaggi seguenti spiegano come specificare la versione node
utilizzando un trigger specifico
variabili di sostituzione:
Nella directory principale del repository, aggiungi un file di configurazione di compilazione che specifica la
node
versione come variabile di sostituzione. Nell'esempio seguente, crea di configurazione,$_NODE_VERSION
è una variabile di sostituzione definita dall'utente:steps: - name: 'node:$_NODE_VERSION' entrypoint: 'npm' args: ['install'] - name: 'node:$_NODE_VERSION' entrypoint: 'npm' args: ['test']
Per ogni versione di
node
su cui vuoi eseguire la compilazione, crea un trigger di compilazione seguendo questi passaggi:Apri la pagina Trigger nella console Google Cloud:
Seleziona il progetto dal menu a discesa del selettore progetti nella parte superiore della pagina.
Fai clic su Apri.
Fai clic su Crea trigger.
Nella pagina Crea trigger, inserisci le seguenti impostazioni:
Inserisci un nome per il trigger.
Seleziona l'evento del repository per avviare il trigger.
Seleziona il repository che contiene il codice sorgente e la build di configurazione del deployment.
Specifica l'espressione regolare per il nome del ramo o tag che inizierà trigger.
Configurazione: scegli il file di configurazione della build che hai creato in precedenza.
In Variabili di sostituzione, fai clic su Aggiungi variabile.
- In Variabile, specifica la variabile di versione
node
utilizzata nel file di configurazione di build e, in Valore, specifica la versione dinode
. Ad esempio,_NODE_VERSION
e12
.
- In Variabile, specifica la variabile di versione
Fai clic su Crea per salvare il trigger di build.
Puoi utilizzare questi attivatori per compilare il codice sulla versione di node
specificata nell'attivatore.
Passaggi successivi
- Scopri come visualizzare i risultati della build.
- Scopri come salvaguardare le build.
- Scopri come creare immagini container.
- Scopri come creare applicazioni Go.
- Scopri come eseguire deployment blu/verde su Compute Engine.
- Scopri come risolvere gli errori di build.