mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-07-04 18:27:56 +02:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d74e30360 | |||
| 3ec122c03b | |||
| 99a581ad01 | |||
| 65796c8e9e | |||
| 6d48682b39 | |||
| 7cb4d62cbe | |||
| 335f6467bc |
@@ -1,4 +1,5 @@
|
||||
name: Build APK and Create GitHub Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
@@ -6,28 +7,35 @@ on:
|
||||
description: "Release version without leading v. Example: 1.0.0. Leave empty to read the top CHANGELOG heading."
|
||||
required: false
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Java 17
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: "17"
|
||||
|
||||
- name: Set up Android SDK
|
||||
uses: android-actions/setup-android@v4
|
||||
|
||||
- name: Set up Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: stable
|
||||
cache: true
|
||||
|
||||
- name: Install required Android SDK packages
|
||||
shell: bash
|
||||
run: |
|
||||
@@ -36,9 +44,11 @@ jobs:
|
||||
"platform-tools" \
|
||||
"platforms;android-35" \
|
||||
"build-tools;34.0.0" \
|
||||
"build-tools;35.0.0" \
|
||||
"build-tools;35.0.0"
|
||||
|
||||
- name: Get dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Resolve version and tag
|
||||
id: meta
|
||||
shell: bash
|
||||
@@ -53,21 +63,79 @@ jobs:
|
||||
TAG="v${VERSION}"
|
||||
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
||||
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Extract release notes from CHANGELOG.md
|
||||
shell: bash
|
||||
env:
|
||||
VERSION: ${{ steps.meta.outputs.version }}
|
||||
run: python3 .github/scripts/get_notes.py
|
||||
|
||||
- name: Decode Android keystore
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mkdir -p android/app
|
||||
# tr -d strips any newlines/spaces introduced when the secret was stored
|
||||
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" \
|
||||
| tr -d '[:space:]' \
|
||||
| base64 --decode > android/app/upload-keystore.jks
|
||||
chmod 600 android/app/upload-keystore.jks
|
||||
echo "Keystore written: $(wc -c < android/app/upload-keystore.jks) bytes"
|
||||
|
||||
- name: Create Android key.properties
|
||||
shell: bash
|
||||
env:
|
||||
KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
|
||||
KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
# Trim any accidental whitespace/newlines from secret values
|
||||
KS_PASS="$(printf '%s' "${KEYSTORE_PASSWORD}" | tr -d '[:space:]')"
|
||||
K_PASS="$(printf '%s' "${KEY_PASSWORD}" | tr -d '[:space:]')"
|
||||
K_ALIAS="$(printf '%s' "${KEY_ALIAS}" | tr -d '[:space:]')"
|
||||
# Absolute path prevents Gradle from misresolving a relative storeFile
|
||||
KEYSTORE_PATH="${GITHUB_WORKSPACE}/android/app/upload-keystore.jks"
|
||||
{
|
||||
printf 'storePassword=%s\n' "${KS_PASS}"
|
||||
printf 'keyPassword=%s\n' "${K_PASS}"
|
||||
printf 'keyAlias=%s\n' "${K_ALIAS}"
|
||||
printf 'storeFile=%s\n' "${KEYSTORE_PATH}"
|
||||
} > android/key.properties
|
||||
|
||||
- name: Verify keystore
|
||||
shell: bash
|
||||
env:
|
||||
KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
KS_PASS="$(printf '%s' "${KEYSTORE_PASSWORD}" | tr -d '[:space:]')"
|
||||
echo "=== Keystore file ==="
|
||||
ls -lh android/app/upload-keystore.jks
|
||||
file android/app/upload-keystore.jks
|
||||
echo ""
|
||||
echo "=== key.properties keys (values hidden) ==="
|
||||
cut -d'=' -f1 android/key.properties
|
||||
echo ""
|
||||
echo "=== Keystore verification via keytool ==="
|
||||
keytool -list \
|
||||
-keystore android/app/upload-keystore.jks \
|
||||
-storepass "${KS_PASS}" \
|
||||
2>&1 | grep -vE "^(Warning|$)"
|
||||
|
||||
- name: Build release APK
|
||||
run: flutter build apk --release
|
||||
|
||||
- name: Rename APK
|
||||
run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/focusgram-release.apk
|
||||
|
||||
- name: Upload APK artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: focusgram-apk-${{ steps.meta.outputs.tag }}
|
||||
path: build/app/outputs/flutter-apk/focusgram-release.apk
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Create Git tag
|
||||
shell: bash
|
||||
env:
|
||||
@@ -82,6 +150,7 @@ jobs:
|
||||
fi
|
||||
git tag -a "${TAG}" -m "Release ${TAG}"
|
||||
git push origin "${TAG}"
|
||||
|
||||
- name: Create GitHub Release
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
@@ -92,4 +161,4 @@ jobs:
|
||||
draft: false
|
||||
prerelease: false
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -28,7 +28,7 @@ FocusGram is an Android-only app that loads the Instagram website with the distr
|
||||
>
|
||||
> [](https://buymemomo.com/ujwal)
|
||||
|
||||
<img width="1920" height="1080" alt="FocusGram App Screenshots" src="https://github.com/user-attachments/assets/cffd4012-4cf3-4ba8-aa1a-883e1f85478e" />
|
||||
<img width="1920" height="1080" alt="FocusGram App Screenshots" src="https://raw.githubusercontent.com/Ujwal223/FocusGram/refs/heads/main/assets/images/app-demo.png" />
|
||||
|
||||
---
|
||||
|
||||
@@ -168,4 +168,4 @@ Copyright © 2025-2026 Ujwal Chapagain
|
||||
|
||||
Licensed under the [GNU Affero General Public License v3.0](LICENSE). You are free to use, modify, and distribute this software under the same terms.
|
||||
|
||||
FocusGram is built and maintained by [Ujwal Chapagain](https://github.com/Ujwal223) under AGPL-3.0, Thanks for Reading README.
|
||||
FocusGram is built and maintained by [Ujwal Chapagain](https://github.com/Ujwal223) under AGPL-3.0, Thanks for Reading README.
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"show": false,
|
||||
"id": "popup_005",
|
||||
"header": "FOCUSGRAM UPDATE DISCONTINUITION!!",
|
||||
"body": "Due to NO Support from community, it is being difficult for me to maintain this project, due to which, Next coming update might be the LAST update for FocusGram. THANKS FOR UNDERSTANDING! ",
|
||||
"max_shows": 6,
|
||||
"button_text": "OKAY..."
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user