CI/CD với Cloud Build
Bài đăng này đã không được cập nhật trong 3 năm
Một trong những điều mình thích nhất ở Cloud Providers là chỉ cần khai báo 1 vài dòng lệnh còn lại mình không phải care
Cloud Build - the serverless CI/CD product of Google Cloud là một trong những thứ hay ho nhất. Đơn giản bởi vì nó dễ apply, thông minh mà hiệu quả
Các bạn đã sẵn sàng chưa. Bắt đầu thôi
Google Cloud Build là gì?
Đây là một sản phẩm của GCP nhằm build mã nguồn của tất cả ngôn ngữ lập trình.
- Tăng tôc độ build với VMs trên Cloud và không tốn tài nguyên của máy cá nhân.
- Mã nguồn được đặt ở Local, Github, Cloud Source Repositories hoặc Bitbucket đều sử dụng được Cloud Build
- Cloud Build hỗ trợ nhiều sự lựa chọn để build mã nguồn: Docker container,Maven, Gradle, webpack, Go hoặc Bazel.
- Kết quả sau khi thực hiện build sẽ được đẩy lên Docker Hub hoặc Container Registry.
- Có thể tùy chỉnh luồng xử lý build theo ý muốn của bạn.
- Miễn phí cho thời gian build là 120 phút/ 1 ngày.
The trigger functionality of Cloud Build
1. Chuẩn bị
- Cài đặt firebase-tools CLI ==>> https://github.com/firebase/firebase-tools
- Cài đặt gcloud CLI ==>> https://cloud.google.com/sdk/gcloud/
- Bật thanh toán trên Google Cloud, dịch vụ Google Cloud Build miễn phí trong 120 phút thời gian build mỗi ngày.(nếu quá thì 0.003$ cho mỗi phút nhé)
- Chuẩn bị source code nữa nhé
2. Phân quyền và kích hoạt Cloud Build API
2.1 Search IAM & Admin và cấp cho user .....@cloudbuild.gserviceaccount.com các quyền này nhé :
2.2 kích hoạt cloud build api. Bạn vào link này vào chọn project
2.3 Kích hoạt Cloud KMS API https://console.cloud.google.com/flows/enableapi?apiid=cloudkms.googleapis.com&redirect=https:%2F%2Fconsole.cloud.google.com&_ga=2.143835250.-618198222.1566810450
2.4 Kích hoạt Service Account User permissions và Cloud KMS CryptoKey Decrypter https://console.cloud.google.com/cloud-build/settings?project={Id project của bạn}
3. Tạo file cloud-build.yaml
Mình cần tạo file cloud-build.yaml và đẩy lên source nhé Trong file này mình sẽ viết các step mà cloud build cần thực hiện để deploy nhé bạn có thể tham khảo cách viết tại đây https://cloud.google.com/cloud-build/docs/build-config
4. Connect repository và tạo Build Trigger
Chú ý: Để có thể connect đến một repo private, cần thêm các config trong file cloudbuild.yaml. Xem hướng dẫn chi tiết tại link dưới: https://cloud.google.com/cloud-build/docs/access-private-github-repos
Tiếp theo bạn vào link https://console.cloud.google.com/cloud-build/triggers?orgonly=true&project={project id của bạn} chọn Connect repository. Ở đây mình chọn là GitHub (Cloud Build GitHub App) nhé
Tiếp theo bạn cần chọn git cần connect nhé, Ví dụ như bên dưới:
Lưu ý quan trọng là để chọn được git thì bạn phải có quyền owner nhé
Sau khi mình hoàn thành các bước mình sẽ có 1 cái trigger như này nhé
Tiếp theo các bạn chọn edit trigger này nhé. Ở mục build configuration mình chọn
Cloud Build configuration file (yaml or json)
và điền tên file .yaml mình tạo bên trên vào đây nhé
Mục Event và Source bạn có thể chọn các option khác nhau. Ở đây mình config là có push vào branch master thì sẽ trigger cloud build nhé
Đến đây đây là mình đã hoàn thành việc cài đặt rồi nhé Ngoài ra bạn cũng có thể run thủ công với branch mà mình chọn nhé
Chúc các bạn thành công
All rights reserved