-
-
Save Albert221/ede4eab3cade98070f37bfa0f646fd19 to your computer and use it in GitHub Desktop.
Automating publishing your Flutter app to Google Play using GitHub Actions snippets
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Flutter release | |
on: | |
release: | |
types: [published] | |
jobs: | |
release: | |
name: Test, build and release | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v1 | |
- name: Setup Java | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '12.x' | |
- name: Setup Flutter | |
uses: subosito/flutter-action@v1 | |
with: | |
channel: beta | |
- name: Flutter version | |
run: flutter --version | |
- name: Cache pub dependencies | |
uses: actions/cache@v2 | |
with: | |
path: ${{ env.FLUTTER_HOME }}/.pub-cache | |
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }} | |
restore-keys: ${{ runner.os }}-pub- | |
- name: Download pub dependencies | |
run: flutter pub get | |
- name: Run build_runner | |
run: flutter pub run build_runner build --delete-conflicting-outputs | |
- name: Run analyzer | |
run: flutter analyze | |
- name: Run tests | |
run: flutter test | |
- name: Download Android keystore | |
id: android_keystore | |
uses: timheuer/base64-to-file@v1.0.3 | |
with: | |
fileName: key.jks | |
encodedString: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} | |
- name: Create key.properties | |
run: | | |
echo "storeFile=${{ steps.android_keystore.outputs.filePath }}" > android/key.properties | |
echo "storePassword=${{ secrets.ANDROID_KEYSTORE_PASSWORD }}" >> android/key.properties | |
echo "keyPassword=${{ secrets.ANDROID_KEY_PASSWORD }}" >> android/key.properties | |
echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" >> android/key.properties | |
- name: Build Android App Bundle | |
run: flutter build appbundle | |
- name: Setup Ruby | |
uses: actions/setup-ruby@v1 | |
with: | |
ruby-version: '2.6' | |
- name: Cache bundle dependencies | |
uses: actions/cache@v2 | |
with: | |
path: vendor/bundle | |
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | |
restore-keys: ${{ runner.os }}-gems- | |
- name: Download bundle dependencies | |
run: | | |
gem install bundler:2.0.2 | |
bundle config path vendor/bundle | |
bundle install | |
- name: Release to Google Play (beta) | |
env: | |
SUPPLY_PACKAGE_NAME: ${{ secrets.ANDROID_PACKAGE_NAME }} | |
SUPPLY_JSON_KEY_DATA: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }} | |
run: | | |
bundle exec fastlane supply \ | |
--aab build/app/outputs/bundle/release/app-release.aab \ | |
--track beta |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment