layout: post
title: "為Flutter項目增加GitLab的CI"
description: "Gitlab自帶CI,文章主要講解如何在gitlab上使用Flutter的CI"
tag: flutter,CI, gitlab
本文主要實現(xiàn)了flutter項目的自動打包。每次上傳代碼到master分支,觸發(fā)自動測試,自動打包Android的apk和iOS的ipa。其中apk文件放在Sources/build/outputs..常規(guī)目錄下,ipa文件放在Sources/ios/build目錄下。當(dāng)然目錄是可以更改的。
文章可能有點亂,諒解。
步驟同上篇文章iOS差不多。
.gitlab-ci.yml文件內(nèi)容
stages:
- build
- archive
build_project:
stage: build
script:
- cd Sources
- flutter pub get
- flutter clean
- flutter doctor && flutter test
tags:
- ios_12-1
- xcode_10-2-1
- osx_10-14-3
build_project:
stage: archive
script:
- cd Sources
- flutter clean
- flutter doctor --android-licenses
- flutter doctor && flutter -v build apk
- flutter doctor && flutter -v build iOS
- cd iOS
- xcodebuild clean archive -configuration Release -workspace Runner.xcworkspace -scheme Runner -archivePath 'build/Runner.xcarchive'
- xcodebuild -exportArchive -configuration Release -archivePath 'build/Runner.xcarchive' -exportPath 'build/Runner.ipa' -allowProvisioningUpdates -exportOptionsPlist 'exportOptions.plist'
tags:
- ios_12-1
- xcode_10-2-1
- osx_10-14-3
步驟:
- 在gitlab創(chuàng)建項目
- 選擇Runner,可以直接使用上一個文章里創(chuàng)建的Runner,記得在.gitlab-ci.yml中指定相對應(yīng)的tag就行了;或者再創(chuàng)建一個。
<img src="/images/flutterCI/1.png" alt="image">

1.png
- 創(chuàng)建flutter項目
- flutter doctor --android-licenses,創(chuàng)建Android的發(fā)布證書
- 用Xcode打開iOS項目配置證書。選用自動配置
- 提交代碼
我遇到的問題:
- 第一次提交的時候提示沒有.packages文件夾,在.gitignore文件里刪除這個文件。再重新提交
$ flutter clean
.packages does not exist.
Did you run "flutter pub get" in this directory?
ERROR: Job failed: exit status 1
- iOS打包的時候需要使用-workspace來指定項目