Halaman ini menjelaskan cara menggunakan Cloud Build untuk mem-build dan menguji aplikasi Node.js
, menyimpan artefak yang dibangun dalam repositori npm di Artifact Registry, dan membuat informasi provenance build.
Dengan Cloud Build, Anda dapat menggunakan image container yang tersedia secara publik untuk menjalankan tugas. Image node
publik dari Docker Hub sudah diinstal sebelumnya dengan alat npm
. Anda dapat mengonfigurasi Cloud Build
untuk mem-build project Node.js
dengan alat ini.
Sebelum memulai
Petunjuk pada halaman ini mengasumsikan bahwa Anda sudah memahami Node.js
. Selain
itu,
- Pelajari npm.
- Siapkan project
Node.js
Anda, termasuk filepackage.json
dantest.js
. - Pastikan file
package.json
Anda menyertakan skripstart
dan skriptest
. - Pahami cara menulis file konfigurasi Cloud Build.
- Memiliki repositori npm di Artifact Registry. Jika Anda belum memilikinya, buat repositori baru.
- Untuk menjalankan perintah
gcloud
di halaman ini, instal Google Cloud CLI.
Membuat project dengan npm
Untuk menjalankan tugas di image node
dari Docker Hub, tentukan URL image di kolom name
pada file konfigurasi Cloud Build.
Cloud Build memulai container yang ditentukan di kolom name
menggunakan titik entri default image. Untuk mengganti titik entri default
dan menentukan cara menjalankan langkah build saat dipanggil, tambahkan
kolom entrypoint
pada langkah build Anda. Image node
di Docker Hub sudah diinstal sebelumnya dengan alat npm
. Tentukan alat di kolom entrypoint
untuk
memanggilnya sebagai titik entri langkah build Anda.
Dalam contoh file konfigurasi build berikut:
- Kolom
name
menentukan bahwa imagenode
dari Docker Hub digunakan oleh Cloud Build untuk menjalankan tugas Anda. Saat menentukan imagenode
, Anda dapat menghilangkan versi node agar ditetapkan secara default ke:latest
, atau menentukan versi node untuk menggunakan versi tertentu. Misalnya,name: node
akan menggunakan versi node terbaru, danname: node:12
akan menggunakannode:12
. Kolom
entrypoint
menentukan bahwa alatnpm
digunakan saat gambarnode
dipanggil.steps: - name: 'node' entrypoint: 'npm'
Mengonfigurasi Node.js
build
Di direktori utama project Anda, buat file konfigurasi dengan nama
cloudbuild.yaml
.Instal dependensi: Sebelum dapat mem-build aplikasi, Anda harus memastikan bahwa semua dependensi project Anda diinstal dari
npm
. Anda dapat menginstal dependensi menggunakan perintahinstall
dalam langkah buildnpm
. Kolomargs
pada langkah build mengambil daftar argumen dan meneruskannya ke gambar yang dirujuk oleh kolom nama. Dalam file konfigurasi build, tambahkaninstall
ke kolomargs
untuk memanggil perintahinstall
:steps: - name: 'node' entrypoint: 'npm' args: ['install']
Menambahkan pengujian: Jika telah menentukan skrip
test
dipackage.json
, Anda dapat mengonfigurasi Cloud Build untuk menjalankan skrip dengan menambahkantest
ke kolomargs
:steps: - name: 'node' entrypoint: 'npm' args: ['install'] - name: 'node' entrypoint: 'npm' args: ['test']
Menjalankan perintah kustom: Jika
package.json
berisi perintah kustom, Anda dapat mengonfigurasi Cloud Build untuk menjalankan perintah tersebut. Di kolomargs
, tambahkanrun
sebagai argumen pertama, diikuti dengan nama perintah kustom. File konfigurasi build berikut memiliki argumen untuk menjalankan perintah kustom yang disebutbuild
:steps: - name: 'node' entrypoint: 'npm' args: ['install'] - name: 'node' entrypoint: 'npm' args: ['test'] - name: 'node' entrypoint: 'npm' args: ['run', 'build']
Upload ke Artifact Registry:
Cloud Build menghasilkan informasi provenance build Supply chain Levels for Software Artifacts (SLSA) untuk paket npm mandiri saat Anda menguploadnya ke Artifact Registry menggunakan kolom
npmPackages
di file konfigurasi Cloud Build Anda.Di file konfigurasi, tambahkan kolom
npmPackages
dan tentukan repositori npm Anda di Artifact Registry:artifacts: npmPackages: - repository: 'https://LOCATION-npm.pkg.dev/PROJECT-ID/REPOSITORY_NAME' packagePath: 'PACKAGE_PATH'
Ganti nilai berikut:
- LOCATION: lokasi untuk repositori Anda di Artifact Registry.
- PROJECT_ID: ID project Google Cloud yang berisi repositori Artifact Registry Anda.
- REPOSITORY_NAME: nama repositori npm Anda di Artifact Registry.
- PACKAGE_PATH: jalur untuk direktori lokal yang berisi paket npm yang ingin Anda upload ke Artifact Registry. Sebaiknya
gunakan jalur absolut. Nilai
PACKAGE_PATH
dapat berupa.
untuk menggunakan direktori kerja saat ini, tetapi kolom tidak boleh dihapus atau dibiarkan kosong. Direktori ini harus berisi filepackage.json
.
Opsional: Mengaktifkan provenance untuk build regional
Jika Anda menggunakan build regional, tambahkan kolom
requestedVerifyOption
dioptions
pada file konfigurasi build Anda. Setel nilai keVERIFIED
untuk mengaktifkan pembuatan metadata provenance. Jika Anda tidak menambahkanrequestedVerifyOption: VERIFIED
, Cloud Build akan menghasilkan provenance untuk build global saja.options: requestedVerifyOption: VERIFIED
Mulai build: secara manual atau gunakan pemicu build.
Setelah build selesai, Anda dapat melihat detail repositori di Artifact Registry.
Anda juga dapat melihat metadata provenance build dan memvalidasi provenance untuk membantu melindungi supply chain software Anda.
Menjalankan pengujian pada beberapa versi node
Terkadang, Anda perlu memastikan bahwa project berfungsi di beberapa versi node
. Anda dapat membuat dan mengonfigurasi pemicu Cloud Build sehingga:
- Dalam file konfigurasi build, tentukan versi
node
sebagai variabel substitusi. - Buat satu pemicu untuk setiap versi
node
yang ingin Anda gunakan untuk mem-build aplikasi. - Di setiap setelan pemicu, gunakan kolom nilai variabel substitusi untuk
menunjukkan versi
node
untuk pemicu tersebut.
Langkah-langkah berikut menjelaskan cara menentukan versi node
menggunakan variabel substitusi
khusus pemicu:
Di root repositori Anda, tambahkan file konfigurasi build, yang menentukan versi
node
sebagai variabel substitusi. Dalam contoh file konfigurasi build berikut,$_NODE_VERSION
adalah variabel substitusi yang ditentukan pengguna:steps: - name: 'node:$_NODE_VERSION' entrypoint: 'npm' args: ['install'] - name: 'node:$_NODE_VERSION' entrypoint: 'npm' args: ['test']
Untuk setiap versi
node
yang ingin Anda build, buat pemicu build menggunakan langkah-langkah berikut:Buka halaman Pemicu di Konsol Google Cloud:
Pilih project Anda dari menu drop-down pemilih project di bagian atas halaman.
Klik Buka.
Klik Create trigger.
Di halaman Create trigger, masukkan setelan berikut:
Masukkan nama untuk pemicu Anda.
Pilih peristiwa repositori untuk memulai pemicu Anda.
Pilih repositori yang berisi kode sumber dan file konfigurasi build Anda.
Tentukan ekspresi reguler untuk nama cabang atau tag yang akan memulai pemicu Anda.
Configuration: Memilih file konfigurasi build yang Anda buat sebelumnya.
Di bagian Variabel substitusi, klik Tambahkan variabel.
- Di bagian Variabel, tentukan variabel versi
node
yang Anda gunakan dalam file konfigurasi build, dan di bagian Value, tentukan versinode
. Misalnya,_NODE_VERSION
dan12
.
- Di bagian Variabel, tentukan variabel versi
Klik Buat untuk menyimpan pemicu build Anda.
Anda dapat menggunakan pemicu ini untuk membuat kode pada versi node
yang Anda
tentukan dalam pemicu.
Langkah selanjutnya
- Pelajari cara melihat hasil build.
- Pelajari cara mengamankan build.
- Pelajari cara membuat image container.
- Pelajari cara mem-build aplikasi Go.
- Pelajari cara melakukan blue/green deployment di Compute Engine.
- Pelajari cara memecahkan masalah error build.