fastlane metadata, CI workflow
This commit is contained in:
parent
aa74e12ee7
commit
4121a73068
7 changed files with 81 additions and 2 deletions
55
.github/workflows/release.yml
vendored
Normal file
55
.github/workflows/release.yml
vendored
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
name: Release APK
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: ["v*"]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "17"
|
||||||
|
|
||||||
|
- uses: subosito/flutter-action@v2
|
||||||
|
with:
|
||||||
|
flutter-version: "stable"
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Extract version code from pubspec
|
||||||
|
run: |
|
||||||
|
VERSION=$(grep '^version:' pubspec.yaml | sed 's/version: //')
|
||||||
|
VERSION_CODE=$(echo "$VERSION" | grep -oP '(?<=\+)\d+')
|
||||||
|
VERSION_NAME=$(echo "$VERSION" | grep -oP '^[^+]+')
|
||||||
|
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV
|
||||||
|
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Decode keystore
|
||||||
|
run: |
|
||||||
|
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > android/app/kirakira-release.jks
|
||||||
|
echo "KEYSTORE_PATH=$GITHUB_WORKSPACE/android/app/kirakira-release.jks" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Build release APK (prod flavor)
|
||||||
|
env:
|
||||||
|
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
|
||||||
|
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
|
||||||
|
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||||
|
run: flutter build apk --release --flavor prod
|
||||||
|
|
||||||
|
- name: Rename APK
|
||||||
|
run: |
|
||||||
|
cp build/app/outputs/flutter-apk/app-prod-release.apk \
|
||||||
|
"kirakira-${{ env.VERSION_NAME }}.apk"
|
||||||
|
|
||||||
|
- name: Create GitHub Release
|
||||||
|
uses: softprops/action-gh-release@v2
|
||||||
|
with:
|
||||||
|
files: kirakira-*.apk
|
||||||
|
body_path: fastlane/metadata/android/en-US/changelogs/${{ env.VERSION_CODE }}.txt
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
@ -19,6 +19,15 @@ android {
|
||||||
jvmTarget = JavaVersion.VERSION_11.toString()
|
jvmTarget = JavaVersion.VERSION_11.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signingConfigs {
|
||||||
|
create("release") {
|
||||||
|
storeFile = file(System.getenv("KEYSTORE_PATH") ?: "debug.jks")
|
||||||
|
storePassword = System.getenv("STORE_PASSWORD") ?: ""
|
||||||
|
keyAlias = System.getenv("KEY_ALIAS") ?: ""
|
||||||
|
keyPassword = System.getenv("KEY_PASSWORD") ?: ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "com.app.smol_mail"
|
applicationId = "com.app.smol_mail"
|
||||||
minSdk = flutter.minSdkVersion
|
minSdk = flutter.minSdkVersion
|
||||||
|
|
@ -55,8 +64,11 @@ android {
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
signingConfig = signingConfigs.getByName(
|
||||||
signingConfig = signingConfigs.getByName("debug")
|
if (System.getenv("KEYSTORE_PATH") != null) "release" else "debug"
|
||||||
|
)
|
||||||
|
isMinifyEnabled = true
|
||||||
|
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
fastlane/Fastfile
Normal file
1
fastlane/Fastfile
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
default_platform(:android)
|
||||||
1
fastlane/metadata/android/en-US/changelogs/1.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/1.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Initial release.
|
||||||
8
fastlane/metadata/android/en-US/full_description.txt
Normal file
8
fastlane/metadata/android/en-US/full_description.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
kirakira is a client for the smol:// mail protocol — a minimalist, end-to-end encrypted messaging system designed for simplicity and privacy.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
• End-to-end encryption via the smolmail protocol
|
||||||
|
• QR code identity sharing
|
||||||
|
• Deep link support for smol:// URIs
|
||||||
|
• Dark mode support
|
||||||
|
• No accounts, no servers you don't control
|
||||||
1
fastlane/metadata/android/en-US/short_description.txt
Normal file
1
fastlane/metadata/android/en-US/short_description.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Smol Mail client — minimalist end-to-end encrypted messaging
|
||||||
1
fastlane/metadata/android/en-US/title.txt
Normal file
1
fastlane/metadata/android/en-US/title.txt
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
kirakira
|
||||||
Loading…
Add table
Add a link
Reference in a new issue