Hướng dẫn xây dựng CI/CD cho Mobile với Github Actions

22:41, 07/06/2022

Github Action trong những năm gần đây đang nổi lên như một thế lực để thực hiện cho các tác vụ CI/CD. Đồng thời cũng là một trong những lựa chọn hàng đầu dành cho các nhà phát triển phần mềm khi muốn có những lựa chọn miễn phí.

Nguồn tham khảo: https://github.com/features/actions

Trong bài viết này Dr.JOY sẽ giới thiệu đến các bạn cách triển khai CI/CD với Github Action nhằm mục đích giảm thiểu chi phí. Trong đó, có thể sử dụng Github Action để triển khai CI/CD cho Android và iOS, thay thế cho các dịch vụ CI/CD khác như: CircleCI, Travis,…

Chúng ta có 2 tuỳ chọn server:

  • Cấp bởi Github
  • Sử dụng máy tính cá nhân hoặc server riêng

 

Đầu tiên, Dr.JOY sẽ giới thiệu đến các bạn cách sử dụng server được cung cấp bởi Github trước.

Bước 1: Để làm được điều đó bạn cần Enable Actions trong repository của mình

Trước khi đi vào thực hành. Bạn có thể làm quen một chút với khái niệm workflow tại ĐÂY

Bước 2: Tạo mới một Workflows

Bước 3: Chọn loại workflow, ở đây mình build cho iOS nên sẽ chọn iOS

→ Github sẽ tạo sẵn cho chúng ta một workflow mẫu cho iOS.

Giới thiệu qua workflow hiện tại gồm có:

push và pull_requests: master
– Mỗi khi chúng ta commit hoặc tạo pull request vào nhánh master thì sẽ có một trigger được tạo ra để chạy workflow này.
runs-on: macos-latest
– Chúng ta chọn server github là macos-latest để thực hiện build cho iOS.
steps:
– Gồm các lệnh thực thi.
name: Checkout
– Lệnh checkout source code về theo commit hiện tại.
name: Build
– Thực thi build iOS theo scheme default.

Bạn ấn vào Start Commit để thêm workflow đấy vào trong project.

Lúc này trong project sẽ có thêm folder workflows được sinh ra.

Đây là folder chứa các workflow của chúng ta

Chúng ta click vào mục Actions để xem danh sách workflow.
Mỗi lần chúng ta commit hoặc thực hiện tạo pull request vào nhánh đã cài đặt workflow thì sẽ có một workflow được chạy.

Kết quả:

  1. Bạn sẽ thấy danh sách các workflow hiện tại cùng thông tin về thời gian build, kết quả build
  2. Click vào bên trong bạn sẽ thấy các step chạy và thời gian chạy mỗi step
  3. Xem chi tiết mỗi step

 

Trong phạm vi ở bài viết này tôi chỉ giới thiệu cách triển khai một CI đơn giản. Để có thể build và deploy được một ứng dụng iOS lên TestFlight hay Firebase Distribution chúng ta sẽ sử dụng fastlane. Đối với Android chúng ta có thể sử dụng thêm Docker và deploy app lên Google Play hoặc Firebase Distribution, mời các bạn đón chờ ở các bài viết tiếp theo.

Source code: https://github.com/dr-joy/IOS-CI

Source code: https://github.com/dr-joy/Android-CI