Compare commits

...

2 commits

Author SHA1 Message Date
randogoth
6eceec3297 fix: use linux-x86_64 runner label 2026-10-14 08:48:16 +03:00
randogoth
4121a73068 feat: release signing,
Some checks are pending
Release APK / build (push) Waiting to run
fastlane metadata, CI workflow
2026-10-14 08:43:46 +03:00
7 changed files with 81 additions and 2 deletions

55
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,55 @@
name: Release APK
on:
push:
tags: ["v*"]
jobs:
build:
runs-on: linux-x86_64
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 }}

View file

@ -19,6 +19,15 @@ android {
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 {
applicationId = "com.app.smol_mail"
minSdk = flutter.minSdkVersion
@ -55,8 +64,11 @@ android {
buildTypes {
release {
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.getByName("debug")
signingConfig = signingConfigs.getByName(
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
View file

@ -0,0 +1 @@
default_platform(:android)

View file

@ -0,0 +1 @@
Initial release.

View 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

View file

@ -0,0 +1 @@
Smol Mail client — minimalist end-to-end encrypted messaging

View file

@ -0,0 +1 @@
kirakira