DeployGate + Flutter + CircleCI로 만드는 앱 테스트 환경
10268 단어 CircleCIDeployGateGitHubFlutter
할 일
Flutter 앱을 빌드하여 Android 기기에서 확인하세요!
그건 그렇고, 모두 무료 프레임입니다
소스 코드
서둘러 만들었기 때문에, 이상한 곳도 가득합니다만 참고해 주세요
CircleCI
.circleci/config.yml
version: 2.1
# Flutterのキャッシュはここでcommandに切り出し
commands:
flutter_restore_cache:
steps:
- restore_cache:
keys: flutter-cache-{{ .Branch }}
flutter_save_cache:
parameters:
root_path:
type: string
default: "app"
steps:
- save_cache:
key: flutter-cache-{{ .Branch }}
paths:
- "<< parameters.root_path >>/android/.gradle"
- "<< parameters.root_path >>/android/gradle"
- "<< parameters.root_path >>/build"
- /opt/android-sdk-linux/
# いい感じのdocker containerがなかったので、この記事を参考にしました
# https://medium.com/flutter-community/setup-ci-cd-pipeline-for-your-flutter-app-using-circleci-ef07e39982ab
jobs:
build:
docker:
- image: cirrusci/flutter
steps:
- checkout
- flutter_restore_cache
# buildしたapkを/tmpにコピー
- run:
working_directory: app
command: |
flutter -v build apk
cp build/app/outputs/apk/app.apk /tmp
- flutter_save_cache
# /tmpのapp.apkを一時的に保存して、次のjobにわたす
- persist_to_workspace:
root: /tmp
paths:
- app.apk
publish:
docker:
# attach_workspaceでca-certificateが必要なので、circleci/nodeを使用 (alpineとかじゃなければOK)
- image: circleci/node
steps:
# /tmp/app.apkを受け取り
- attach_workspace:
at: /tmp
# apkをDeployGateにアップロード
# messageにはgitのコミットハッシュを入れています
- run: |
curl \
-X POST \
-F "token=${DG_TOKEN}" \
-F "file=@/tmp/app.apk" \
-F "message=${CIRCLE_SHA1}" \
"https://deploygate.com/api/users/${DG_USER}/apps" | tee /tmp/result.out
# 次のjobにDeployGateへアップロードしたときのレスポンスを渡す
- persist_to_workspace:
root: /tmp
paths:
- result.out
protect:
docker:
- image: circleci/node
steps:
# result.outの受け取り
- attach_workspace:
at: /tmp
- run: |
APP_ID="$(cat /tmp/result.out | jq -r .results.package_name)"
REVISION="$(cat /tmp/result.out | jq -r .results.revision)"
curl \
-X POST \
-F "token=${DG_TOKEN}" \
https://deploygate.com/api/users/${DG_USER}/platforms/android/apps/${APP_ID}/binaries/${REVISION}/protect
workflows:
version: 2
flutter:
jobs:
- build:
filters:
tags:
only: /.*/
- publish:
requires:
- build
filters:
branches:
only: master
tags:
only: /.*/
- protect:
requires:
- publish
filters:
branches:
ignore: /.*/
tags:
only: /.*/
DeployGate
CircleCI에서는 DeployGate API를 두드리는 데 사용하는 토큰 등을 환경 변수로 사용합니다.
사용하는 환경 변수
Reference
이 문제에 관하여(DeployGate + Flutter + CircleCI로 만드는 앱 테스트 환경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fnaoto/items/3f0ea07b961a48762c69텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)