twonly-app/.github/workflows/release_github.yml
2025-07-19 02:31:07 +02:00

69 lines
No EOL
2 KiB
YAML

name: Publish (Android)
on:
workflow_dispatch: {}
push:
branches:
- main_ignore
# paths:
# - lib/**
# - pubspec.lock
# - pubspec.yaml
jobs:
build_and_publish:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
- name: Cloning sub-repos
run: git submodule update --init --recursive
- name: Check flutter code
run: |
flutter pub get
flutter analyze
flutter test
- name: Create key.properties file
run: |
echo "storePassword=${{ secrets.STORE_PASSWORD }}" >> ./android/key.properties
echo "keyPassword=${{ secrets.KEY_PASSWORD }}" >> ./android/key.properties
echo "keyAlias=github-releases-signature" >> ./android/key.properties
echo "storeFile=./keystore.jks" >> ./android/key.properties
- name: Create keystore file
env:
KEYSTORE_FILE: ${{ secrets.KEYSTORE_FILE }}
run: echo $KEYSTORE_FILE | base64 --decode > ./android/app/keystore.jks
- name: Build Android APK
run: flutter build apk --release --split-per-abi
# - name: Create Github Release
# uses: actions/upload-artifact@v4
# with:
# name: release-apk
# path: build/app/outputs/flutter-apk/*.apk
# retention-days: 2
- name: Extract pubspec version
run: |
echo "PUBSPEC_VERSION=$(grep -oP 'version:\s*\K[^+]+(?=\+)' pubspec.yaml)" >> $GITHUB_ENV
- name: Upload Release Binaries (stable)
uses: ncipollo/release-action@v1.18.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: v${{ env.PUBSPEC_VERSION }}
omitBodyDuringUpdate: true
omitNameDuringUpdate: true
omitPrereleaseDuringUpdate: true
allowUpdates: true
artifacts: build/app/outputs/flutter-apk/*.apk