@@ -15,46 +15,80 @@ jobs:
1515
1616 steps :
1717 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
18- - uses : actions/checkout@v3
18+ - name : ⬇️ Checkout
19+ uses : actions/checkout@v3
1920 with :
2021 fetch-depth : 0
2122 ref : " dev"
22- - name : Prepare Git
23+ - name : ⚙️ Setup Flutter
24+ uses : subosito/flutter-action@v2
25+ with :
26+ channel : ' stable'
27+ cache : true
28+ - name : ⚙️ Prepare Git
2329 run : |
2430 git config --global user.name 'github-actions[bot]'
2531 git config --global user.email 'github-actions[bot]@users.noreply.github.com'
32+ - name : 📦 Get dependencies
33+ run : flutter pub get
34+ working-directory : ./taletime
35+ - name : 🔑 Setup signing key
36+ run : |
37+ echo "${{ secrets.SIGNING_KEY_KEYSTORE }}" | base64 -d > taletime/android/app/keystore.jks
2638
27- - name : " Get next version"
39+ - name : Get next version
2840 uses : ietf-tools/semver-action@v1
2941 id : get_next_version
3042 with :
3143 token : ${{ github.token }}
3244 branch : dev
3345
34- - name : Bump version
46+ - name : ⏩ Bump version
3547 run : |
3648 sed -i "s/^version:.*$/version: ${{ steps.get_next_version.outputs.nextStrict }}/g" taletime/pubspec.yaml
3749 git commit -am "fix: Bumped version to ${{ steps.get_next_version.outputs.nextStrict }}"
3850
39- - name : Merge into main
51+ - name : 🔹 Merge into main
4052 run : |
4153 git checkout main
4254 git merge dev --no-ff
43- - name : Create tag
55+ - name : 🏷️ Create tag
4456 run : git tag ${{ steps.get_next_version.outputs.next }}
45- - name : Merge back into dev
57+
58+ - name : 🧪 Run tests
59+ run : flutter test
60+ working-directory : ./taletime
61+ - name : 📱 Build Android app
62+ env :
63+ SIGNING_KEY_KEY_PASSWORD : ${{ secrets.SIGNING_KEY_KEY_PASSWORD }}
64+ SIGNING_KEY_STORE_PASSWORD : ${{ secrets.SIGNING_KEY_STORE_PASSWORD }}
65+ run : |
66+ flutter build apk --flavor prod --build-number $GITHUB_RUN_NUMBER
67+ cp build/app/outputs/flutter-apk/app-prod-release.apk build/app/outputs/flutter-apk/TaleTime-${{ steps.get_next_version.outputs.nextStrict }}.apk
68+ working-directory : ./taletime
69+
70+ - name : 🔹 Merge back into dev
4671 run : |
4772 git checkout dev
4873 git merge main --no-ff
4974
50- - name : Prepare next dev version
75+ - name : ⏩ Prepare next dev version
5176 run : |
5277 NEXT_VERSION=${{ steps.get_next_version.outputs.nextStrict }}
5378 IFS=. read -r v1 v2 v3 <<< "${NEXT_VERSION}"
5479 DEV_VERSION="${v1}.${v2}.$((v3 + 1))"
5580 sed -i "s/^version:.*$/version: ${DEV_VERSION}-SNAPSHOT/g" taletime/pubspec.yaml
5681 git commit -am "fix: Prepared next dev version: ${DEV_VERSION}-SNAPSHOT"
5782
58- - name : Push everything
83+ - name : ⬆️ Push everything
5984 run : git push origin main dev --tags
85+
86+ - name : 📦 Create Release
87+ uses : softprops/action-gh-release@v1
88+ with :
89+ token : ${{ secrets.GITHUB_TOKEN }}
90+ tag_name : ${{ steps.get_next_version.outputs.next }}
91+ generate_release_notes : true
92+ files : |
93+ ./taletime/build/app/outputs/flutter-apk/TaleTime*.apk
6094
0 commit comments