Triển khai CI/CD cho iOS – GitlabCI Artifact

by Sam
79 views

Ngày đông giá rét, thay vì ngồi dài cổ đợi ae commit code lên để build cho Tester. Bạn có thể đơn giản add Tester vào Gitlab, cài một con CD Artifact đơn giản và ném vào mặt nó phần việc nhàm chán kia. Còn bạn có thể nhàn nhã mò ra Highlands, nhâm nhi cốc cafe nóng và xem cơm chó của ngày Noel buồn…

Sam, gửi Cương Good, Anh Mẹc và Very Good Team

Overview

Tiếp tục với series CI/CD cho iOS, hôm nay chúng ta sẽ chuyển sang chuyên mục CD với phương thức Deploy đơn giản nhất – GitlabCI Artifact.

Vì đây là bài viết đầu tiên liên quan đến CD, chúng ta sẽ cần đề cập đến phương thức Archive và Distribute ứng dụng sử dụng command line.

Distribute IPA sử dụng Command Line

Để triển khai CD, mọi công việc đều phải thực hiện thông qua Shell Command, do đó từ các công việc Build, Test, Archive hay Distribute IPA đều phải thực hiện bằng các câu lệnh. Rất may, Apple cung cấp sẵn một bộ Command Line Tools được tích hợp kèm với Xcode, ta có thể sử dụng ngay khi máy đã cài đặt Xcode. Các bạn có thể tham khảo hướng dẫn các command tại đây.

Đầu tiên, chúng ta sẽ cài đặt setting project sang Automatic Signing, đảm bảo thiết bị chạy runner đã đăng nhập tài khoản hợp lệ và build thành công App bằng Xcode.

Setting Automatically trong Xcode

Sau khi thành công, ta sẽ thử build project bằng câu lệnh với cú pháp:

xcodebuild build -scheme cicd-test

Với tham số -scheme là chỉ định scheme/target để build.

Build thành công Project trên Terminal

Sau khi thành công, chứng tỏ là project đã được setting đúng cách, chúng ta sẽ thực hiện archive App bằng câu lệnh sau:

<code>xcodebuild archive -archivePath "cicd-test" -scheme cicd-test

Với tham số -archivePath chỉ định tên và đường dẫn export ra .xcarchive file.

Sau khi chạy xong, chúng ta sẽ thấy có một file được export ra với tên cicd-test.xcarchive trông như ảnh sau:

Output của quá trình archive app

Sau khi đã có .xcarchive file, chúng ta cần thực hiện export ra IPA file. Để export được IPA file, chúng ta cần một file ExportOptions.plist, ở đây chúng ta sẽ export bằng chế độ adhoc, file sẽ có nội dung như sau:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>method</key>
	<string>ad-hoc</string>
</dict>
</plist>

Trong trường hợp IPA cần export ở các chế độ khác, ta sẽ thay ad-hoc bằng các keyword tương ứng sau:

  • Development: development
  • Adhoc: ad-hoc
  • AppStore: app-store
  • Enterprise: enterprise

Sau đó, thực hiện export IPA bằng câu lệnh sau:

xcodebuild -exportArchive  -archivePath "cicd-test.xcarchive" -exportPath "ipa" -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates

Với các tham số sau đây:

  • -exportPath: Chỉ định thư mục sẽ export ra file IPA
  • exportOptionsPlist: Chỉ định file chưa các config export
  • -allowProvisioningUpdates: Cần phải có nếu Project setting chế độ Automatic Signing. Không cần sử dụng nếu setting manual signing.

Sau khi export xong, chúng ta sẽ nhận được file IPA ở thư mục như hình sau:

Vị trí file IPA được export ra

Như vậy là ta đã tạo xong file IPA, tiếp đến sẽ là setting với GitlabCI

Cấu hình .gitlab-ci.yml cho GitlabCI

Rồi tới công chuyện, giờ chúng ta chỉ cần chuyển toàn bộ các câu lệnh ở trên vào phần script của file .gitlab-ci.yml và cấu hình để GitlabCI nhận file IPA làm Artifact là xong.

File .gitlab-ci.yml cơ bản sẽ có nội dung như sau:

stages:
  - build

build_project:
  stage: build
  script:
    - echo 'Hello bitches, welcome to lazy boys world!'
    - echo 'Just commit code, serve yourself a cup of coffee. Let gitlab build your app!'
    - xcodebuild archive -archivePath "cicd-test" -scheme cicd-test
    - xcodebuild -exportArchive  -archivePath "cicd-test.xcarchive" -exportPath "ipa" -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates
  tags:
    - main
  artifacts:
    paths:
      - ipa/cicd-test.ipa

Sau đó, hãy commit các thay đổi lên và chờ đợi thành quả!

Thành quả của quá trình là đây

Như bạn thấy trong ảnh trên, phía bên phải của Jobs Detail sẽ có một section để tải về Job Artifacts chứa file IPA có thể cài được. Ở đây, ta chỉ cần ấn nút Download IPA thực hiện cài đặt ứng dụng vào điện thoại.

Như vậy là ta đã hoàn thành cấu hình CD đơn giản cho iOS với GitlabCI Artifact. Hẹn gặp các bạn ở bài viết tiếp theo.

Series Navigation<< Triển khai CI/CD cho iOS – SonarQube & BlackduckTriển khai CI/CD cho iOS – Appstore Distribution >>Triển khai CI/CD cho iOS – In house Distribution với DeployGate >>

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

You may also like