Khi developer báo test chức năng của API khi dev chưa đóng PR (nhánh chưa được merge) thì chúng ta phải làm thế nào?.
Qua bài này, chúng ta sẽ biết được cách triển khai điều đó bằng Github Workflow.
Các bước thực hiện:
- Cấp quyền và cử người đại diện (Service Account)
- Người đại diện xuất passport(Key) vào Repository, Github và GCP (Google Cloud Plaform) bắt tay nhau
- Kết nối với anh Repository bằng biên bản workflow
- Thông báo cho dev và testers bằng link.
Bắt đầu ▶️
1. Cấp quyền và cử người đại diện (Service Account)
- Truy cập link https://console.cloud.google.com/iam-admin/iam?project=YOUR_PROJECT_NAME
- Chọn anh bạn 123xx-compute@developr.gserviceaccount.com và cấp cho quyền tạo được accesstoken (Service Account Token Creator) . Nếu không chọn bạn này, bạn có thể tạo bạn khác có quyền này là được.
2. Người đại diện xuất passport vào Repository, Github và GCP (Google Cloud Plaform) bắt tay nhau
- Truy cập vào GCP Service Account
- Chọn người đại diện ở trên > Keys > Add Key > Xuất 1 key dưới dạng JSON
- Xuất trình Key này vào Github Repository để có quyền truy cập:
-
- Vào Repo trên github > Settings > Secret and variables > Actions > New repository secret >
-
- Đặt tên key là
GCP_CREDENTIALS
và điền nội dung JSON vừa download về vào field Secret.
- Đặt tên key là
3. Kết nối với anh Repository bằng biên bản workflow
Vậy là Passport đã được thông qua, Service Account đã có quyền làm việc với anh Repo. 2 bên có biên bản công việc bằng workflow. Cùng thực hiện nhé.
- Download các biên bản workflow từ link https://gist.github.com/zerolethanh/5c044593610ed2dc3e13aacb8e868a65
- Đặt dưới thư mục
.github/workflows
(tạo nếu chưa có) của Repo - Chỉnh các thông số và tên cho phù hợp với văn phong Repo
Ví dụ trên nghĩa là:
Khi 1 PR được mở ra nhằm merge vào nhánh stg
thì thực hiện tạo 1 CloudRun vào GCP Project githubtube
, region service tại Singapore, dùng Dockerfile-stg để build....
4. Thông báo cho dev và testers bằng link.
Sau khi chạy xong phải thông báo kết quả để các dev tự test, và các testers khi nhảy vào test thì biết link test là gì. Kết quả chạy ra được viết vào comment của PR đó, kiểu thế này:
Nghĩa là PR#27 này đã có link riêng để test, hãy test trên url này nhé ;)
Khi soi revisions console sẽ thấy 1 revision được tạo ra:
Kết luận
Tương tự, các bạn có thể bổ sung và chỉnh sửa các file cho nhánh main
để release production, format xuất ra comment trên PR, setting này nằm trong các file .yalm tải về.
Xong rồi, đi uống bia thôi 🍻😃