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.)