From ca10ee1f7526f489499e53b9f5c4e7fac9839056 Mon Sep 17 00:00:00 2001 From: Keen-eyed <166857601+Keen-eyed@users.noreply.github.com> Date: Sun, 22 Mar 2026 13:39:53 +0900 Subject: [PATCH] Update build workflow for uYouEnhanced with inputs --- .github/workflows/buildapptest.yml | 175 +++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) diff --git a/.github/workflows/buildapptest.yml b/.github/workflows/buildapptest.yml index 6a1b51b..19cc721 100644 --- a/.github/workflows/buildapptest.yml +++ b/.github/workflows/buildapptest.yml @@ -119,6 +119,130 @@ jobs: echo ::add-mask::$URL_YT echo URL_YT=$URL_YT >> $GITHUB_ENV + name: Build and Release uYouEnhanced + +on: + workflow_dispatch: + inputs: + sdk_version: + description: "iOS SDK Version" + default: "17.5" + required: true + type: string + uyou_version: + description: "uYou Version" + default: "3.0.4" + required: true + type: string + decrypted_youtube_url: + description: "Direct URL of the decrypted YouTube IPA" + default: "" + required: true + type: string + bundle_id: + description: "Modify the bundle ID" + default: "com.google.ios.youtube" + required: true + type: string + app_name: + description: "Modify the app name" + default: "YouTube" + required: true + type: string + commit_id: + description: "(Optional) Commit ID to build at" + default: "" + required: false + type: string + upload_artifact: + description: "Upload IPA as artifact" + default: false + required: false + type: boolean + create_release: + description: "Create a draft release" + default: true + required: false + type: boolean + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build uYouEnhanced + runs-on: macos-14 + permissions: + contents: write + env: + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + + steps: + - name: Checkout Main + uses: actions/checkout@v5 + with: + path: main + ref: ${{ github.event.inputs.commit_id || github.ref }} + 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@v5 + with: + repository: theos/theos + ref: master + path: theos + submodules: recursive + + - name: SDK Caching + id: SDK + uses: actions/cache@v4 + env: + cache-name: iOS-${{ inputs.sdk_version }}-SDK + with: + path: 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/aricloverALT/sdks/ + cd sdks + git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk + git checkout + mv *.sdk $THEOS/sdks + env: + THEOS: ${{ github.workspace }}/theos + + - name: Setup Theos Jailed + uses: actions/checkout@v5 + with: + repository: qnblackcat/theos-jailed + ref: master + path: theos-jailed + submodules: recursive + + - name: Install Theos Jailed + run: ./theos-jailed/install + env: + THEOS: ${{ github.workspace }}/theos + + - name: Hash YT ipa url + run: | + URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)" + echo ::add-mask::$URL_YT + echo URL_YT=$URL_YT >> $GITHUB_ENV + + - name: Debug URL + run: echo "URL is: $URL_YT" + - name: Prepare YouTube iPA id: prepare_youtube run: | @@ -165,3 +289,54 @@ jobs: name: uYouEnhanced Release files: main/packages/*.ipa draft: true + name: Debug URL +      run: echo "URL is: $URL_YT" + + - name: Prepare YouTube iPA + id: prepare_youtube + run: | + + wget "$URL_YT" --quiet --no-verbose -O main/YouTube.ipa + cd ${{ github.workspace }}/main + mv YouTube.ipa YouTube.zip + unzip -q YouTube.zip + youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion) + echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + YOUTUBE_URL: ${{ env.URL_YT }} + + - name: Fix compiling & Build Package + id: build_package + run: | + cd ${{ github.workspace }}/main + sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile + sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile + sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile + make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1 + echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT + env: + THEOS: ${{ github.workspace }}/theos + UYOU_VERSION: ${{ inputs.uyou_version }} + BUNDLE_ID: ${{ inputs.bundle_id }} + APP_NAME: ${{ inputs.app_name }} + + - name: Upload Artifact + if: ${{ inputs.upload_artifact }} + uses: actions/upload-artifact@v5 + with: + name: uYouEnhanced + path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} + if-no-files-found: error + + - name: Create Release + if: ${{ inputs.create_release }} + uses: softprops/action-gh-release@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }} + name: uYouEnhanced Release + files: main/packages/*.ipa + draft: true +