Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Firebase App Distribution と Github Actions でapkを配布する

keijumt
December 12, 2019

Firebase App Distribution と Github Actions でapkを配布する

keijumt

December 12, 2019
Tweet

More Decks by keijumt

Other Decks in Programming

Transcript

  1. © DMM.com • keijumt / দຊܓथ(͚͍͡Ύ) • CTOࣨ ΤόϯδΣϦετνʔϜॴଐ •

    εϊʔϘʔυ͕޷͖ • ࠷ۙiOS։ൃͯ͠·͢ ࣗݾ঺հ 2
  2. © DMM.com ΞδΣϯμ • Firebase App Distributionͱ͸ʁ • App Distribution

    Gradle Pluginͷಋೖ • Github Actionsͱ͸ʁ • Github Actionsͷಋೖ • ςελʔʹ഑෍
  3. © DMM.com ഑෍ํ๏ • Firebase Console • Firebase CLI •

    fastlane • App Distribution Gradle Plugin
  4. © DMM.com ഑෍ํ๏ • Firebase Console • Firebase CLI •

    fastlane • App Distribution Gradle Plugin
  5. © DMM.com App Distribution Gradle Pluginͷར༻ʹ͋ͨͬͯ • લఏ৚݅ • FirebaseϓϩδΣΫτ͕࡞੒͞Ε͍ͯΔ

    • ΞϓϦ͕FirebaseϓϩδΣΫτʹඥ෇͍͍ͯΔ • ൿಗ৘ใܥͷ؅ཧ͸είʔϓ֎
  6. © DMM.com App Distribution Gradle Pluginͷར༻खॱ 1. αʔϏεΞΧ΢ϯτͷ࡞੒ 2. App

    Distribution APIͷ༗ޮԽ 3. App Distribution Gradle Pluginͷಋೖ 4. gradleʹ഑෍ઃఆͷهड़
  7. © DMM.com App Distribution Gradle Pluginͷར༻खॱ 1. αʔϏεΞΧ΢ϯτͷ࡞੒ 2. App

    Distribution APIͷ༗ޮԽ 3. App Distribution Gradle Pluginͷಋೖ 4. gradleʹ഑෍ઃఆͷهड़
  8. © DMM.com App Distribution Gradle Pluginͷར༻खॱ 1. αʔϏεΞΧ΢ϯτͷ࡞੒ 2. App

    Distribution APIͷ༗ޮԽ 3. App Distribution Gradle Pluginͷಋೖ 4. gradleʹ഑෍ઃఆͷهड़
  9. © DMM.com App Distribution APIͷ༗ޮԽ • Google APIs Console͔Β Firebase

    App Distribution API Λ༗ޮԽ • 2019೥9݄20೔Ҏ߱ʹ࡞੒͞ΕͨϓϩδΣΫτ͸σϑΥϧτͰ༗ޮ ʹͳ͍ͬͯΔ
  10. © DMM.com App Distribution Gradle Pluginͷར༻खॱ 1. αʔϏεΞΧ΢ϯτͷ࡞੒ 2. App

    Distribution APIͷ༗ޮԽ 3. App Distribution Gradle Pluginͷಋೖ 4. gradleʹ഑෍ઃఆͷهड़
  11. © DMM.com build.gradle(project) buildscript { repositories { google() } dependencies

    { classpath ‘com.google.firebase:firebase-appdistribution-gradle:1.3.0' } }
  12. © DMM.com App Distribution Gradle Pluginͷར༻खॱ 1. αʔϏεΞΧ΢ϯτͷ࡞੒ 2. App

    Distribution APIͷ༗ޮԽ 3. App Distribution Gradle Pluginͷಋೖ 4. gradleʹ഑෍ઃఆͷهड़
  13. © DMM.com App Distribution Gradle PluginͷΦϓγϣϯ • appId(required) • serviceCredentialsFile

    • releaseNotes or releaseNotesFile • testers or testersFile • groups or groupsFile
  14. © DMM.com App Distribution Gradle PluginͷΦϓγϣϯ • appId(required) • serviceCredentialsFile

    • releaseNotes or releaseNotesFile • testers or testersFile • groups or groupsFile
  15. © DMM.com App Distribution Gradle PluginͷΦϓγϣϯ • appId(required) • serviceCredentialsFile

    • releaseNotes or releaseNotesFile • testers or testersFile • groups or groupsFile
  16. © DMM.com App Distribution Gradle PluginͷΦϓγϣϯ • appId(required) • serviceCredentialsFile

    • releaseNotes or releaseNotesFile • testers or testersFile • groups or groupsFile releaseNotes = “this is a release note” releaseNotesFile = “/path/to/releaseNote.txt
  17. © DMM.com App Distribution Gradle PluginͷΦϓγϣϯ • appId(required) • serviceCredentialsFile

    • releaseNotes or releaseNotesFile • testers or testersFile • groups or groupsFile testers="[email protected], [email protected]” testersFile="/path/to/testers.txt"
  18. © DMM.com App Distribution Gradle PluginͷΦϓγϣϯ • appId(required) • serviceCredentialsFile

    • releaseNotes or releaseNotesFile • testers or testersFile • groups or groupsFile groups="qa-team, android-testers" groupsFile="/path/to/tester-groups.txt"
  19. © DMM.com build.gradle(app) buildTypes { release { signingConfig signingConfigs.release firebaseAppDistribution

    { appId = "appId" serviceCredentialsFile = "${rootDir.absolutePath}/firebase-admin-sdk.json" } } }
  20. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  21. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  22. © DMM.com YAMLߏจʹ͍ͭͯ on: pull_request: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  23. © DMM.com YAMLߏจʹ͍ͭͯ on: pull_request: branches: - 'releases/**' jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  24. © DMM.com YAMLߏจʹ͍ͭͯ on: pull_request: branches: - 'releases/**' tags: -

    v1.* jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  25. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  26. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  27. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease • Windows Server 2016 • Windows Server 2019 • Ubuntu 18.04 • Ubuntu 16.04 • macOS Catalina 10.15
  28. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease • Android SDK: 15 ~ 29 • build-tools: 24.0.0 ~ 29.0.2
  29. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  30. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease {owner}/{repo}@{ref} • actions/setup-node@74bc508 • actions/setup-node@v1 • actions/[email protected] • actions/setup-node@master
  31. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease
  32. © DMM.com YAMLߏจʹ͍ͭͯ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Apk run: ./gradlew assenbleRelease - name: Echo environment variable run: echo ${{ secrets.HOGE }}
  33. © DMM.com YAMLͷهड़ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Release APK run: ./gradlew assembleRelease - name: Deploy app distribution run: ./gradlew appDistributionUploadRelease
  34. © DMM.com YAMLͷهड़ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Release APK run: ./gradlew assembleRelease - name: Deploy app distribution run: ./gradlew appDistributionUploadRelease
  35. © DMM.com YAMLͷهड़ on: push: branches: - master jobs: build:

    runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Build Release APK run: ./gradlew assembleRelease - name: Deploy app distribution run: ./gradlew appDistributionUploadRelease
  36. © DMM.com ͓ΘΓʹ • App Distribution Gradle PluginͰFabric͔ΒͷҠߦָ͕ͦ͏ • Github

    Actionsͷಋೖ͕؆୯ • Firebaseެࣜϖʔδͷ೔ຊޠରԠ͕஗͍