Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 26 additions & 39 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,23 @@ name: Build and Release Android
on:
workflow_dispatch:

permissions:
contents: write

jobs:
build:
name: Build & Release Android
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
uses: actions/checkout@v4

- name: Set Up Java
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '21'
distribution: 'temurin'

- name: Set Up Flutter
uses: subosito/flutter-action@v2
Expand All @@ -38,45 +39,31 @@ jobs:
run: |
version=$(grep '^version:' pubspec.yaml | sed 's/version:\s*\([0-9]*\.[0-9]*\.[0-9]*.*\)/\1/' | tr -d '\r')
echo "VERSION=$version" >> $GITHUB_ENV
echo "version=$version" >> $GITHUB_OUTPUT
echo "Extracted version: $version"

- name: Build APK
run: flutter build apk --release --build-name=${{ env.VERSION }} --build-number=${{ github.run_number }}
run: flutter build apk --release --build-name=${{ steps.extract_version.outputs.version }} --build-number=${{ github.run_number }}

- name: Build App Bundle
run: flutter build appbundle --build-name=${{ env.VERSION }} --build-number=${{ github.run_number }}
- name: Rename APK
run: |
mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/hnotes-v${{ steps.extract_version.outputs.version }}.apk

- name: Upload Artifacts
uses: actions/upload-artifact@v4
- name: Create GitHub Tag and Release
uses: softprops/action-gh-release@v2
with:
name: Android-Releases
path: |
build/app/outputs/flutter-apk/app-release.apk
build/app/outputs/bundle/release/app-release.aab
retention-days: 7
tag_name: v${{ steps.extract_version.outputs.version }}
name: v${{ steps.extract_version.outputs.version }}
draft: false
prerelease: false
generate_release_notes: true
files: build/app/outputs/flutter-apk/hnotes-v${{ steps.extract_version.outputs.version }}.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Generate Release Tag
id: tag_version
- name: Create Deployment Summary
run: |
if [ "${{ github.event.inputs.release_type }}" == "production" ]; then
RELEASE_TAG="v${{ env.VERSION }}"
else
RELEASE_TAG="v${{ env.VERSION }}-${{ github.event.inputs.release_type }}"
fi
echo "RELEASE_TAG=$RELEASE_TAG" >> $GITHUB_ENV

- name: Create Release
uses: ncipollo/release-action@v1
with:
artifacts: "build/app/outputs/flutter-apk/app-release.apk,build/app/outputs/bundle/release/app-release.aab"
tag: ${{ env.RELEASE_TAG }}
name: "Android Release ${{ env.RELEASE_TAG }}"
body: |
Android Release ${{ env.RELEASE_TAG }}
Version: ${{ env.VERSION }}
Build Number: ${{ github.run_number }}
Release Type: ${{ github.event.inputs.release_type }}

Automated release from GitHub Actions workflow.
token: ${{ secrets.TOKEN }}
prerelease: ${{ github.event.inputs.release_type != 'production' }}
echo "## Release Summary:" >> $GITHUB_STEP_SUMMARY
echo "### App version: ${{ steps.extract_version.outputs.version }}" >> $GITHUB_STEP_SUMMARY
echo "### 🕒 Released at: $(date)" >> $GITHUB_STEP_SUMMARY
echo "::notice::Build APK successfully!"
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 3.0.4
version: 3.0.3

environment:
sdk: "^3.8.0"
Expand Down