- vừa được xem lúc

Tự động deploy Service trên Bizfly App Engine sử dụng Github Actions

0 0 17

Người đăng: Hoàng Việt

Theo Viblo Asia

Mở đầu

Bài viết này mình sẽ hướng dẫn mọi người tích hợp tính năng Webhook Deploy mới có trên Bizfly App Engine để triển khai ứng dụng tự động sử dụng Github Actions. Bài viết này sẽ rất hữu ích cho những bạn đang triển khai Service từ nguồn là Github. Mục đích cần đạt được là mỗi khi bạn push code mới lên trên repo tại Github, App Engine sẽ nhận được yêu cầu và tiến hành triển khai phiên bản mới từ source code mới đó.

Tính năng Webhook Deploy này sẽ giúp bạn:

  • Nhanh chóng đưa ra được phiên bản mới cho người dùng
  • Tự động hóa quá trình cập nhật

Khá đơn giản đúng không nào 😄. Trong bài này mình sẽ hướng dẫn cách thức tích hợp đơn giản nhất để tránh gây khó hiểu khi áp dụng, nếu bạn cần áp dụng cho trường hợp phức tạp hơn mà không biết làm thế nào có thể comment ở phía dưới mình sẽ hỗ trợ. Okay, chúng ta cùng bắt tay vào thực hiện luôn nhé!

Bước 1: Kích hoạt tính năng Webhook Deploy

Để kích hoạt tính năng Webhook Deploy, bạn cần truy cập vào Service của bạn trên Bizfly App Engine và chọn Chi tiết.

Nếu bạn chưa từng sử dụng Bizfly App Engine thì tham khảo bài viết này nhé! Một nền tảng triển khai ứng dụng serverless đáng để thử đó 😄

Trong trang này sẽ chứa các thông tin về service của bạn, bao gồm Webhook Deploy. Bạn cần click vào nút bật trong mục Webhook Deploy để kích hoạt tính năng này. Mặc định tính năng này sẽ được tắt.

Sau khi kích hoạt tính năng Webhook Deploy, bạn sẽ nhận được một Webhook URL. Đây là URL mà bạn sẽ sử dụng để gửi request bằng phương thức POST đến để triển khai phiên bản mới cho service của bạn.

Hệ thống sẽ xác thực yêu cầu triển khai phiên bản mới bằng trường TOKEN được gắn trong request, chính vì thế bạn cần lưu ý không bao giờ chia sẻ Webhook URL này với bất kỳ ai. Bất cứ ai có Token đều có thể yêu cầu triển khai lại phiên bản mới cho service của bạn.

Ngoài ra bạn có thể nhấn nút bên cạnh URL để tạo ra một token mới. Sau khi tạo token mới, bạn cần cập nhật lại token mới này vào các nơi sử dụng Webhook Deploy để có thể tiếp tục sử dụng.

Như vậy sau bước này ta đã có URL để có thể call thực hiện triển khai phiên bản mới cho service.

Bước 2: Tạo secret trong repo github của bạn

Để tích hợp Webhook Deploy cho repository của bạn trên Github, bạn cần tạo Secret trong repository để lưu trữ Webhook URL theo các bước như sau:

Trong repository của bạn chọn Settings -> Secrets and variables ->** Actions** -> New repository secret

Tạo Secret mới, đặt tên cho Secret là WEBHOOK_URL và nhập giá trị là Webhook URL của service của bạn trên Bizfly App Engine đã có được tại Bước 1, sau đó ấn Add Secret.

Bước 3: Cấu hình Github Actions

Tạo file .github/workflows/deploy.yml trong repository của bạn với nội dung như sau:

name: Sample Github CD for Bizfly App Engine on: push: branches: [ "master" ] # Sẽ kích hoạt jobs ở dưới khi có sự kiện push lên branch master jobs: deploy: runs-on: ubuntu-latest # Sử dụng runner chạy HĐH Ubuntu steps: - name: Trigger deploy in Bizfly App Engine run: curl -X POST ${{ secrets.WEBHOOK_URL }} # Thực hiện gửi request với phương thức POST bằng curl

File deploy.yaml bên trên có mục đích thực hiện gửi request với phương thức POST đến Webhook URL của service của bạn trên Bizfly App Engine khi có sự kiện push lên branch master. Cụm ${{ secrets.WEBHOOK_URL }} sẽ được thay bằng đường dẫn URL Webhook khi Job chạy.

Sau khi cấu hình thanh công, bạn có thể thực hiện push code lên branch master để kiểm tra kết quả.

Tại mục Actions của repository của bạn, bạn sẽ thấy có một job được thực hiện là Sample Github CD for Bizfly App Engine như hình.

Vào xem chi tiết từng job, bạn sẽ thấy job deploy đã được thực hiện với status_code trả về là 200 thì việc yêu cầu triển khai lại phiên bản mới đã thành công.

Quay trở lại trang quản trị service của bạn trên Bizfly App Engine, bạn sẽ thấy đã có một phiên bản mới được triển khai.

Như vậy từ giờ trở đi với mỗi sự thay đổi trên branch master, Service chạy tại App Engine sẽ được tự động triển khai mới.

Kết

Cám ơn các bạn đã đọc tận đến đây 🥳. Bizfly App Engine là một nền tảng triển khai ứng dụng đa ngôn ngữ mới được mình và team phát triển gần đây, nền tảng hiện đang miễn phí triển khai ứng dụng bạn có thể tạo tài khoản và trải nghiệm nhé! Mình cũng đã có nhiều bài hướng dẫn triển khai các ứng dụng khác nhau trong Series BizflyCloud App Engine Tutorials

Bất cứ góp ý nào cũng rất quý với bọn mình, bạn có thể liên hệ trực tiếp với mình qua Telegram @HoangViet12 để góp ý hoặc yêu cầu hỗ trợ nhé! Follow mình và Up Vote nếu bài viết giúp ích cho bạn hoặc muốn theo dõi thêm các bài viết khác nhé.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 69

- vừa được xem lúc

Khi Github Actions và CircleCI song kiếm hợp bích thì đỉnh không gì bằng [Phần 2]

Cách thức thực hiện. Có thể nói ưu điểm của Github Actions chính là số lượng trigger nhiều. Việc khởi động CircleCI sẽ gọi API của CircleCI từ phía Github Actions và kích hoạt trigger. Cho nên, ở setting của repository, hãy cài OFF cho Webhook.

0 0 35

- vừa được xem lúc

Khi Github Actions và CircleCI song kiếm hợp bích thì đỉnh không gì bằng [Phần 1]

(Sau đây xin được dịch lại bài báo nọ, ngôi xưng là "Chế"). .

0 0 36

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 4): Các mẫu job cơ bản

Sau đây là một số mẫu Github action cơ bản mà các bạn có thể sử dụng để tạo một flow hoàn chỉnh, phụ thuộc vào yêu cầu của từng dự án khác nhau. .

0 1 116

- vừa được xem lúc

Cách tạo một trang blog cá nhân miễn phí dành cho dev

Vào một ngày đẹp trời, bỗng dưng mình nảy ra ý định làm một trang blog cá nhân thay vì viết Blog trên các nền tảng có sẵn. .

0 0 29

- vừa được xem lúc

Cài đặt đơn giản automating publishing Flutter app lên Google Play bằng Github Actions

Introduction. Mỗi developer hay gặp phải các công việc lặp đi lặp lại gây ra sự nhàm chán.

0 0 34