使用 GitLab Pipeline 整合 Fastlane 腳本
- 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 工具,讓開發者能夠在版本控制流程中自動執行測試、部署等工作。
主要項目
Stages:Pipeline 的執行階段,例如 build、test、deploy。
Jobs:每個 Stage 包含的任務,例如執行測試腳本。
Artifacts:Pipeline 執行後產生的文件,例如測試結果或覆蓋率報告。
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 流程中,實現穩定、高效的測試與覆蓋率報告生成。
希望這篇文章能幫助你快速上手,讓專案的測試流程更加完善!如果有任何問題,歡迎留言討論。
留言