mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-07-04 02:07:52 +02:00
Compare commits
10 Commits
MIdway-PUsh
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c9ec258696 | |||
| 98049b5858 | |||
| 14439a4aab | |||
| 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 }}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
[](LICENSE)
|
||||
[](https://flutter.dev)
|
||||
[](https://github.com/ujwal223/focusgram/releases)
|
||||
[](https://github.com/ujwal223/focusgram/releases)
|
||||
|
||||
<a href='https://focusgram.en.uptodown.com/android' title='Download FocusGram'>
|
||||
<img src='https://stc.utdstc.com/img/mediakit/download-gio-small.png' alt='Download FocusGram on Uptodown'>
|
||||
@@ -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": true,
|
||||
"id": "popup_005",
|
||||
"header": "App Update NOtice!",
|
||||
"body": "New App Update is available, if you havent updated to V2.0.0 then you can just update the app normally. But If you are in v2.0.0 you must delete it and install new version. (i forgot to sign V2)",
|
||||
"max_shows": 2,
|
||||
"button_text": "Sucks Man..."
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user