Build and Package SCInsta #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Inspired heavily by the following workflows | |
# https://github.com/arichornlover/uYouEnhanced/blob/main/.github/workflows/buildapp.yml | |
# https://github.com/ISnackable/YTCubePlus/blob/main/.github/workflows/Build.yml | |
# https://github.com/BandarHL/BHTwitter/actions/workflows/build.yml | |
name: Build and Package SCInsta | |
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 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build SCInsta | |
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: iPhoneOS14.5.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 iPhoneOS14.5.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 SCInsta Version | |
id: scinsta_version | |
run: | | |
SCINSTA_VERSION=$(awk '/Version:/ {print $2}' main/control) | |
echo "SCINSTA_VERSION=${SCINSTA_VERSION}" >> "$GITHUB_ENV" | |
echo "version=${SCINSTA_VERSION}" >> "$GITHUB_OUTPUT" | |
- name: Build SCInsta tweak for sideloading (as IPA) | |
run: | | |
bash -c "$(curl https://raw.githubusercontent.com/asdfzxcvbn/pyzule/main/install-pyzule.sh)" | |
cd main | |
ls -la | |
./build.sh sideload | |
ls -la packages | |
env: | |
THEOS: ${{ github.workspace }}/theos | |
- name: Rename IPA to include version info | |
run: | | |
cd main/packages | |
mv "$(ls -t | head -n1)" "SCInsta_sideloaded_v${SCINSTA_VERSION}.ipa" | |
- name: Pass package name to upload action | |
id: package_name | |
run: | | |
echo "package=$(ls -t main/packages | head -n1)" >> "$GITHUB_OUTPUT" | |
- name: Upload Artifact | |
if: ${{ inputs.upload_artifact }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: SCInsta_sideloaded_v${{ steps.scinsta_version.outputs.version }} | |
path: ${{ github.workspace }}/main/packages/${{ steps.package_name.outputs.package }} | |
if-no-files-found: error |