Use fastlane for deployment

This commit is contained in:
Geoffroy Bonneville
2025-11-09 15:27:11 -05:00
parent b48655e40a
commit 92dc0ffa2d
4 changed files with 29 additions and 55 deletions

View File

@@ -5,11 +5,6 @@ on:
branches:
- master
pull_request:
workflow_dispatch:
env:
MODULE: donextv2
BUILD_DIR: donextv2/build/outputs/bundle/release
jobs:
build:
@@ -17,7 +12,7 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
@@ -39,37 +34,18 @@ jobs:
restore-keys: |
${{ runner.os }}-gradle-
- name: Run unit tests
run: ./gradlew :${{ env.MODULE }}:testDebugUnitTest --stacktrace
- name: Build AAB
run: ./gradlew :${{ env.MODULE }}:bundleRelease
- name: Upload artifact
uses: actions/upload-artifact@v4
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
name: release-aab
path: ${{ env.BUILD_DIR }}/*release*.aab
ruby-version: 3.1
deploy-google-play:
needs: build
if: github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
- name: Install Fastlane
run: gem install fastlane -NV
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: release-aab
path: release
- name: Configure Google credentials
run: echo '${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }}' > service-account.json
- name: Deploy to Google Play (production)
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }}
packageName: com.wismna.geoffroy.donext
releaseFiles: release/${{ env.MODULE }}-release.aab
track: beta
metadataRootDirectory: fastlane/metadata/android
whatsNewDirectory: fastlane/metadata/android/en-US/changelogs
status: completed
- name: Run Fastlane
env:
SUPPLY_JSON_KEY: service-account.json
run: fastlane internal

View File

@@ -1,3 +1,4 @@
source "https://rubygems.org"
gem "fastlane"
gem 'abbrev'

View File

@@ -1,2 +1,2 @@
json_key_file("./fastlane/keys/donext-f9e67-5038064982b0")
json_key_file(ENV["SUPPLY_JSON_KEY"] || "./fastlane/keys/donext-f9e67-5038064982b0")
package_name("com.wismna.geoffroy.donext")

View File

@@ -1,26 +1,23 @@
default_platform(:android)
platform :android do
desc "Run all unit tests"
lane :test do
gradle(task: "testDebugUnitTest")
end
desc "Build a release APK or AAB for beta testing"
lane :beta do
gradle(task: "clean bundleRelease")
upload_to_play_store(
track: "beta",
aab: "app/build/outputs/bundle/release/app-release.aab"
)
end
desc "Deploy the production version to Google Play"
desc "Build, test, and deploy the production version to Google Play"
lane :deploy do
gradle(task: "clean bundleRelease")
gradle(task: "testDebugUnitTest")
gradle(task: "clean :donextv2:bundleRelease")
upload_to_play_store(
track: "production",
aab: "app/build/outputs/bundle/release/app-release.aab"
aab: "donextv2/build/outputs/bundle/release/donextv2-release.aab"
)
end
end
desc "Build, test, and deploy to Google Play"
lane :internal do
gradle(task: "testDebugUnitTest")
gradle(task: "clean :donextv2:bundleRelease")
upload_to_play_store(
track: "internal",
aab: "donextv2/build/outputs/bundle/release/donextv2-release.aab"
)
end
end