mirror of
https://github.com/faroukbmiled/RyukGram.git
synced 2026-04-23 04:36:03 +02:00
0b9992ee30
feat: Confirm story emoji reaction feat: Spanish translation feat: Language switcher + import/export localization from Debug feat: Swipe down to dismiss media viewer feat: Manually add users to story/chat exclusion lists by username feat: Keep stories visually seen locally — split mode (grey ring locally, seen receipt still blockedon server) feat: Auto-scroll reels — IG default or RyukGram mode, keeps advancing after swiping back (#3) fix: Messages-only mode — tab swiping disabled fix: Settings quick-access broken in non-English languages fix: Story seen-receipt block restored on IG v425+ (Sundial uploader), per-owner, both "Block all" and "Block selected" modes fix: Block selected mode no longer marks listed stories as seen imp: Story-interaction pipeline unifies confirm + seen/advance side effects
150 lines
5.3 KiB
YAML
150 lines
5.3 KiB
YAML
name: Build and Package RyukGram
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
decrypted_instagram_url:
|
|
description: "The direct URL to the decrypted Instagram IPA"
|
|
default: ""
|
|
required: true
|
|
type: string
|
|
upload_artifact:
|
|
description: "Upload Artifact"
|
|
default: true
|
|
required: false
|
|
type: boolean
|
|
build_tipa:
|
|
description: "Build tipa"
|
|
default: false
|
|
required: false
|
|
type: boolean
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
jobs:
|
|
build:
|
|
name: Build RyukGram
|
|
runs-on: macos-latest
|
|
permissions:
|
|
contents: write
|
|
|
|
steps:
|
|
- name: Checkout Main
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: main
|
|
submodules: recursive
|
|
|
|
- name: Install Dependencies
|
|
run: brew install ldid dpkg make
|
|
|
|
- name: Set PATH environment variable
|
|
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
|
|
|
- name: Setup Theos
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: theos/theos
|
|
ref: master
|
|
path: ${{ github.workspace }}/theos
|
|
submodules: recursive
|
|
|
|
- name: SDK Caching
|
|
id: SDK
|
|
uses: actions/cache@v4
|
|
env:
|
|
cache-name: iPhoneOS16.2.sdk
|
|
with:
|
|
path: ${{ github.workspace }}/theos/sdks/
|
|
key: ${{ env.cache-name }}
|
|
restore-keys: ${{ env.cache-name }}
|
|
|
|
- name: Download iOS SDK
|
|
if: steps.SDK.outputs.cache-hit != 'true'
|
|
run: |
|
|
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/xybp888/iOS-SDKs/
|
|
cd iOS-SDKs
|
|
git sparse-checkout set --no-cone iPhoneOS16.2.sdk
|
|
git checkout
|
|
mv *.sdk $THEOS/sdks
|
|
env:
|
|
THEOS: ${{ github.workspace }}/theos
|
|
|
|
- name: Prepare Instagram IPA
|
|
run: |
|
|
cd main
|
|
mkdir -p packages
|
|
wget "$Instagram_URL" --no-verbose -O packages/com.burbn.instagram.ipa
|
|
ls -la packages
|
|
env:
|
|
THEOS: ${{ github.workspace }}/theos
|
|
Instagram_URL: ${{ inputs.decrypted_instagram_url }}
|
|
|
|
- name: Get Version
|
|
id: version
|
|
run: |
|
|
VERSION=$(awk '/Version:/ {print $2}' main/control)
|
|
echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
|
|
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Setup FFmpegKit
|
|
run: cd main && ./scripts/setup-ffmpegkit.sh
|
|
|
|
- name: Build sideloaded IPA (rootless deb → cyan inject)
|
|
run: |
|
|
pip install --force-reinstall https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip
|
|
|
|
cd main
|
|
# ipapatch disabled — upstream issues.
|
|
./build.sh sideload
|
|
ls -la packages
|
|
env:
|
|
THEOS: ${{ github.workspace }}/theos
|
|
|
|
- name: Rename IPA
|
|
run: |
|
|
cd main/packages
|
|
IPA=$(ls -t *.ipa | grep -iv instagram | head -n1)
|
|
[ -n "$IPA" ] && mv "$IPA" "RyukGram_sideloaded_v${VERSION}.ipa"
|
|
|
|
- name: Duplicate as .tipa
|
|
if: ${{ inputs.build_tipa }}
|
|
run: |
|
|
cd main/packages
|
|
cp "RyukGram_sideloaded_v${VERSION}.ipa" "RyukGram_trollstore_v${VERSION}.tipa"
|
|
|
|
- name: Pass package name to upload action
|
|
id: package_name
|
|
run: |
|
|
echo "package=$(ls -t main/packages/RyukGram_sideloaded_v*.ipa | head -n1 | xargs basename)" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Upload IPA Artifact
|
|
if: ${{ inputs.upload_artifact }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: RyukGram_sideloaded_v${{ steps.version.outputs.version }}
|
|
path: ${{ github.workspace }}/main/packages/${{ steps.package_name.outputs.package }}
|
|
if-no-files-found: error
|
|
|
|
- name: Upload TIPA Artifact
|
|
if: ${{ inputs.upload_artifact && inputs.build_tipa }}
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: RyukGram_trollstore_v${{ steps.version.outputs.version }}
|
|
path: ${{ github.workspace }}/main/packages/RyukGram_trollstore_v*.tipa
|
|
if-no-files-found: error
|
|
|
|
- name: Create Release
|
|
uses: softprops/action-gh-release@v2.0.6
|
|
with:
|
|
name: RyukGram_sideloaded_v${{ steps.version.outputs.version }}
|
|
files: |
|
|
${{ github.workspace }}/main/packages/RyukGram_sideloaded_v*.ipa
|
|
${{ github.workspace }}/main/packages/RyukGram_trollstore_v*.tipa
|
|
draft: true
|
|
|
|
- name: Output Release URL
|
|
run: |
|
|
echo "::notice::Release available at: https://github.com/${{ github.repository }}/releases"
|