From fc0fbfc736a493def3089a78de4991b92db3bc46 Mon Sep 17 00:00:00 2001 From: faroukbmiled Date: Tue, 23 Jun 2026 08:14:20 +0100 Subject: [PATCH] ci: update build action to include 410 version --- .github/workflows/buildapp-from-release.yml | 17 ++- .github/workflows/buildapp.yml | 152 -------------------- .github/workflows/buildtweak.yml | 105 -------------- .github/workflows/release.yml | 148 ------------------- 4 files changed, 15 insertions(+), 407 deletions(-) delete mode 100644 .github/workflows/buildapp.yml delete mode 100644 .github/workflows/buildtweak.yml delete mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/buildapp-from-release.yml b/.github/workflows/buildapp-from-release.yml index 8bb42b5..323b355 100644 --- a/.github/workflows/buildapp-from-release.yml +++ b/.github/workflows/buildapp-from-release.yml @@ -14,12 +14,20 @@ on: required: false type: boolean decrypted_instagram_url: - description: "Direct URL to the decrypted Instagram IPA" + description: "Direct URL to the decrypted Instagram IPA (must match the target — a 410.x IPA for IG 410)" default: "" required: true type: string + target: + description: "IG target (410 auto-picks the latest -410 release)" + default: "434" + required: false + type: choice + options: + - "434" + - "410" release_tag: - description: "Release tag to pull assets from (leave empty for latest, e.g. v1.3.0)" + description: "Release tag to pull assets from (leave empty for latest of target, e.g. v1.3.3-410)" default: "" required: false type: string @@ -71,10 +79,15 @@ jobs: env: GH_TOKEN: ${{ github.token }} INPUT_TAG: ${{ inputs.release_tag }} + INPUT_TARGET: ${{ inputs.target }} run: | set -euo pipefail if [ -n "$INPUT_TAG" ]; then TAG="$INPUT_TAG" + elif [ "$INPUT_TARGET" = "410" ]; then + # Newest release whose tag ends in -410. + TAG="$(gh release list --repo "$UPSTREAM_REPO" --limit 50 --json tagName -q '[.[].tagName | select(endswith("-410"))][0] // empty')" + [ -n "$TAG" ] || { echo "::error::No -410 release found on $UPSTREAM_REPO."; exit 1; } else TAG="$(gh release view --repo "$UPSTREAM_REPO" --json tagName -q .tagName)" fi diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml deleted file mode 100644 index 882dc81..0000000 --- a/.github/workflows/buildapp.yml +++ /dev/null @@ -1,152 +0,0 @@ -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 - curl -Lo ipapatch https://github.com/asdfzxcvbn/ipapatch/releases/download/v2.1.3/ipapatch.macos-arm64 - chmod +x ipapatch - export PATH=.:$PATH - - ./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" diff --git a/.github/workflows/buildtweak.yml b/.github/workflows/buildtweak.yml deleted file mode 100644 index d300cba..0000000 --- a/.github/workflows/buildtweak.yml +++ /dev/null @@ -1,105 +0,0 @@ -name: Build RyukGram tweak (rootless + rootful) - -on: - push: - branches: - - 'main' - - 'dev' - workflow_dispatch: - -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 - - - 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: 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 rootless - run: | - cd main - ./build.sh rootless - cd packages - DEB="$(ls -t *-rootless.deb | head -n1)" - [ -n "$DEB" ] && mv "$DEB" "com.faroukbmiled.ryukgram_${VERSION}+debug-rootless.deb" - ls -la - env: - THEOS: ${{ github.workspace }}/theos - - - name: Build rootful - run: | - cd main - ./build.sh rootful - cd packages - DEB="$(ls -t *-rootful.deb | head -n1)" - [ -n "$DEB" ] && mv "$DEB" "com.faroukbmiled.ryukgram_${VERSION}+debug-rootful.deb" - ls -la - env: - THEOS: ${{ github.workspace }}/theos - - - name: Upload rootless artifact - uses: actions/upload-artifact@v4 - with: - name: com.faroukbmiled.ryukgram_${{ env.VERSION }}+debug-rootless.deb - path: ${{ github.workspace }}/main/packages/com.faroukbmiled.ryukgram_${{ env.VERSION }}+debug-rootless.deb - if-no-files-found: error - - - name: Upload rootful artifact - uses: actions/upload-artifact@v4 - with: - name: com.faroukbmiled.ryukgram_${{ env.VERSION }}+debug-rootful.deb - path: ${{ github.workspace }}/main/packages/com.faroukbmiled.ryukgram_${{ env.VERSION }}+debug-rootful.deb - if-no-files-found: error diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 879bc5e..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Build and Release RyukGram - -on: - push: - branches: - - 'main' - workflow_dispatch: - -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 - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Install Dependencies - run: brew install ldid dpkg make - - - name: Set PATH - 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: Get Version - id: version - run: | - VERSION=$(awk '/Version:/ {print $2}' control) - echo "VERSION=${VERSION}" >> "$GITHUB_ENV" - echo "version=${VERSION}" >> "$GITHUB_OUTPUT" - - - name: Setup FFmpegKit - run: ./scripts/setup-ffmpegkit.sh - - - name: Build rootless deb - run: | - export THEOS="${{ github.workspace }}/theos" - ./build.sh rootless - cd packages - DEB="$(ls -t *-rootless.deb | head -n1)" - [ -n "$DEB" ] && mv "$DEB" "RyukGram_${VERSION}_rootless.deb" - ls -la - - - name: Build rootful deb - run: | - export THEOS="${{ github.workspace }}/theos" - ./build.sh rootful - cd packages - DEB="$(ls -t *-rootful.deb | head -n1)" - [ -n "$DEB" ] && mv "$DEB" "RyukGram_${VERSION}_rootful.deb" - ls -la - - - name: Upload rootless artifact - uses: actions/upload-artifact@v4 - with: - name: RyukGram_v${{ steps.version.outputs.version }}_rootless - path: packages/RyukGram_${{ env.VERSION }}_rootless.deb - if-no-files-found: error - - - name: Upload rootful artifact - uses: actions/upload-artifact@v4 - with: - name: RyukGram_v${{ steps.version.outputs.version }}_rootful - path: packages/RyukGram_${{ env.VERSION }}_rootful.deb - if-no-files-found: error - - - name: Check if release - id: check_release - run: | - COMMIT_MSG=$(git log -1 --pretty=%B) - if [[ "$COMMIT_MSG" == *"[release]"* ]] || [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - echo "should_release=true" >> "$GITHUB_OUTPUT" - else - echo "should_release=false" >> "$GITHUB_OUTPUT" - fi - - - name: Generate release notes - if: steps.check_release.outputs.should_release == 'true' - run: | - PREV_TAG=$(git tag --sort=-creatordate | grep -v "v${VERSION}$" | head -n1 || true) - { - echo "## Changelog" - echo "" - git log -1 --pretty=%B | tail -n +2 | sed -e '/^$/d' -e '/^\[release\]/d' - echo "" - echo "## Downloads" - echo "" - echo "| File | Description |" - echo "|------|-------------|" - echo "| \`RyukGram_rootless.deb\` | Rootless .deb (Dopamine/palera1n). Also works for sideloading via Feather/cyan. |" - echo "| \`RyukGram_rootful.deb\` | Rootful .deb (unc0ver/checkra1n). |" - echo "" - if [ -n "$PREV_TAG" ]; then - echo "**Full changelog:** [\`${PREV_TAG}\`...\`v${VERSION}\`](https://github.com/${{ github.repository }}/compare/${PREV_TAG}...v${VERSION})" - else - echo "**[All commits](https://github.com/${{ github.repository }}/commits/main)**" - fi - } > /tmp/release_notes.md - - - name: Create Release - if: steps.check_release.outputs.should_release == 'true' - run: | - SUBJECT=$(git log -1 --pretty=%s | sed 's/\[release\]//g' | xargs) - TITLE="${SUBJECT:-RyukGram v${VERSION}}" - gh release create "v${VERSION}" \ - --repo "${{ github.repository }}" \ - --title "$TITLE" \ - --notes-file /tmp/release_notes.md \ - "packages/RyukGram_${VERSION}_rootless.deb" \ - "packages/RyukGram_${VERSION}_rootful.deb" - env: - GH_TOKEN: ${{ github.token }}