top of page

使用 GitLab Pipeline 整合 Fastlane 腳本

  • 作家相片: Mason Chang
    Mason Chang
  • 1月7日
  • 讀畢需時 2 分鐘

已更新:5月29日

從前面的文章,我們知道如何使用 Fastlane 執行測試,如果還不知道怎麼使用,請先看我前面的文章。

這篇將教導如何使用 GitLab Pipeline 整合 Fastlane 腳本,實現 push 一個新的 commit 到 gitlab 時,會自動執行測試來檢查當前的內容是否有問題。

首先,我們會簡單介紹 GitLab Pipeline,接著分享如何將 Fastlane 腳本整合到 .gitlab-ci.yml 文件中。


什麼是 GitLab Pipeline?

GitLab Pipeline 是 GitLab 提供的一套 CI/CD 工具,讓開發者能夠在版本控制流程中自動執行測試、部署等工作。


主要項目

  1. Stages:Pipeline 的執行階段,例如 build、test、deploy。

  2. Jobs:每個 Stage 包含的任務,例如執行測試腳本。

  3. Artifacts:Pipeline 執行後產生的文件,例如測試結果或覆蓋率報告。

  4. Runners:執行 Job 的計算資源,GitLab 提供共享 Runners 或自建 Runners。

以下是一個簡單的 GitLab Pipeline 範例:

stages:
  - build
  - test

build_app:     // <- build_app 是一個 job name
  stage: build // <- build 是第一個 stage,所以會第一個執行
  script:      // <- 工作內容會放在 script 內
    - echo "Building the app" // <- print "Building the app"
    - echo "do somethings"

run_tests:
  stage: test
  script:
    - echo "Generating test results"
    - bundle exec fastlane run_tests
  artifacts:
    paths:
      - test_results/      // <- 如果 run_tests 會將測試結果的檔案放在 test_results 資料夾,則這個設定將可以保留這個資料夾的內容給下一個 stage


將 Fastlane 整合到 GitLab Pipeline

現在,我們將展示如何在 .gitlab-ci.yml 文件中整合 Fastlane 腳本。


配置步驟

1. 創建 .gitlab-ci.yml 文件

  • 在專案根目錄中創建 .gitlab-ci.yml 文件,定義 Pipeline 的結構與內容。

2. 定義 Pipeline 的 Stages

  • 我們將設定 test 與 coverage 兩個階段,分別執行測試與生成測試覆蓋率報告。

stages:
  - test
  - coverage

3. 配置測試階段

  • 在 test 階段,我們會執行 Fastlane 的 run_test Lane。

test_app:
  stage: test
  script:
    - bundle install
    - bundle exec fastlane run_test
  artifacts:
    paths:
      - build/DerivedData
  • artifacts:保存測試生成的 Derived Data,供後續使用。

4. 配置覆蓋率報告階段

  • 在 coverage 階段,我們執行 Fastlane 的 generate_coverage Lane,生成 JUnit 格式的測試覆蓋率報告。

generate_coverage:
  stage: coverage
  script:
    - bundle install
    - bundle exec fastlane generate_coverage
  artifacts:
    paths:
      - coverage_reports
  • artifacts:保存覆蓋率報告文件,供後續查看。


完整 .gitlab-ci.yml 文件範例

以下是完整的 .gitlab-ci.yml 文件:

stages:
  - test
  - coverage

test_app:
  stage: test
  script:
    - bundle install
    - bundle exec fastlane run_test
  artifacts:
    paths:
      - build/DerivedData

generate_coverage:
  stage: coverage
  script:
    - bundle install
    - bundle exec fastlane generate_coverage
  artifacts:
    paths:
      - coverage_reports



Summary

通過 GitLab Pipeline,我們可以將 Fastlane 的自動化測試流程無縫整合到 CI/CD 流程中,實現穩定、高效的測試與覆蓋率報告生成。

希望這篇文章能幫助你快速上手,讓專案的測試流程更加完善!如果有任何問題,歡迎留言討論。


 
 
 

留言


follow me
  • Facebook
  • LinkedIn

Thanks for submitting!

IMG_5625_edited_edited.jpg
Mason
Small habits, repeated daily, lead to extraordinary results.
bottom of page