Skip to content

Instantly share code, notes, and snippets.

@vinicioslc
Last active May 10, 2024 22:01
Show Gist options
  • Save vinicioslc/b9bd073c8013a726033a999db68a45be to your computer and use it in GitHub Desktop.
Save vinicioslc/b9bd073c8013a726033a999db68a45be to your computer and use it in GitHub Desktop.
Build flutter releases in github actions for production only android for while.
# This is a basic workflow to help you get started with Actions
name: CD Internal-Lane
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
tags:
- "internal-v*.*.*" # on every version tag will build a new android artifact example: v3.1.2+6
jobs:
build:
name: Build Artifacts and Release
runs-on: ubuntu-latest
steps:
- 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:
flutter-version: "1.17.5"
- name: Decode android/neumodore_key.jks
run: echo "${{ secrets.KEYSTORE_JKS_PROD }}" | base64 --decode > android/keystore.jks
- name: Decode android/key.properties
run: echo "${{ secrets.KEY_PROPERTIES_PROD }}" | base64 --decode > android/key.properties
- uses: olegtarasov/get-tag@v2 # that generate $GIT_TAG_NAME env
id: tagName
with:
tagRegex: 'internal-v([0-9]+.[0-9]+.[0-9]+\+[0-9]+)' # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined.
tagRegexGroup: 1 # Optional. Default is 1.
- name: Replace YAML version with tag version
run: |
sed -i 's/99.99.99+99/'$GIT_TAG_NAME'/g' pubspec.yaml|
echo "Tag used version:"$GIT_TAG_NAME
- name: Pub Get Packages
run: flutter pub get
- name: Build APPBUNDLE
run: flutter build appbundle --release
- name: Create Github Release
uses: ncipollo/release-action@v1
with:
artifacts: "build/app/outputs/bundle/release/*.aab"
token: ${{ secrets.PERSONAL_RELEASE_TOKEN }}
- name: Save APPBUNDLE to Artifacts
uses: actions/upload-artifact@v2
with:
name: APPBUNDLE
path: build/app/outputs/bundle/release/app-release.aab
release_internal:
name: Release Artifacts to internal track
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Get APPBUNDLE from Artifacts
uses: actions/download-artifact@v2
with:
name: APPBUNDLE
- name: Release APPBUNDLE to internal track
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.GOOGLE_SERVICE_JSONKEY }}
packageName: com.example.app
releaseFile: app-release.aab
track: internal
whatsNewDirectory: distribution/whatsnew
@vinicioslc
Copy link
Author

Oh @TafadzwaD thanks dude! I haven't forgotten you <3, you are the best!

@AristideVB
Copy link

Hi @vinicioslc I would also greatly appreciate participating in this Christmas tradition ๐Ÿ˜„ do you think you could make this workflow up to date ?

@TafadzwaD
Copy link

@vinicioslc Sorry the Christmas gift came late๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚. Check your Kofi account!! Better late than never.

@vinicioslc
Copy link
Author

@vinicioslc Sorry the Christmas gift came late๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚. Check your Kofi account!! Better late than never.

I have just replied on ko-fi man ! please see here you are the best!

@TafadzwaD
Copy link

Thanks man!

@mahdi-safdari
Copy link

@TafadzwaD
Hi man, how are you?
I am a Flutter programmer looking for a job. Can I cooperate with you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment