diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml new file mode 100644 index 0000000..4e07e4a --- /dev/null +++ b/.github/workflows/buildapp.yml @@ -0,0 +1,128 @@ +# Original idea by @ISnackable. Thanks to him for handling the hardest parts! +# https://github.com/ISnackable/CercubePlus/blob/main/.github/workflows/Build.yml + +name: Build and Release uYouPlus + +on: + workflow_dispatch: + inputs: + uyou_version: + description: "The version of uYou" + default: "2.1" + required: false + type: string + decrypted_youtube_url: + description: "The direct URL to the decrypted YouTube ipa" + default: "" + required: true + type: string + youtube_version: + description: "The version of YouTube" + default: "" + required: true + type: string + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build uYouPlus + runs-on: macos-latest + + steps: + - name: Set Env + run: echo "workspace=$GITHUB_WORKSPACE" >> $GITHUB_ENV + + - name: Checkout Main + uses: actions/checkout@v3 + with: + path: main + submodules: recursive + + - name: Install Dependencies + run: brew install ldid dpkg + + - name: Setup Theos + uses: actions/checkout@v3 + with: + repository: theos/theos + ref: master + path: theos + submodules: recursive + + - name: Download iOS 15 SDK + run: | + curl -LO https://github.com/chrisharper22/sdks/archive/main.zip + TMP=$(mktemp -d) + unzip -qq main.zip -d $TMP + mv $TMP/sdks-main/*.sdk $THEOS/sdks + rm -r main.zip $TMP + env: + THEOS: ${{ env.workspace }}/theos + + - name: Setup Theos Jailed + uses: actions/checkout@v3 + with: + repository: kabiroberai/theos-jailed + ref: master + path: theos-jailed + submodules: recursive + + - name: Install Theos Jailed + run: | + ./theos-jailed/install + env: + THEOS: ${{ env.workspace }}/theos + + - name: Download Dylibs + run: | + curl "https://raw.githubusercontent.com/Muirey03/RemoteLog/master/RemoteLog.h" --output "$THEOS/include/RemoteLog.h" + curl "https://miro92.com/repo/debs/com.miro.uyou_${{ env.UYOU_VERSION }}_iphoneos-arm.deb" --output "./main/Tweaks/uYou/com.miro.uyou_${{ env.UYOU_VERSION }}_iphoneos-arm.deb" + wget "$YOUTUBE_URL" --no-verbose -O ./main/YouTube.ipa + dpkg-deb -x "./main/Tweaks/uYou/com.miro.uyou_${{ env.UYOU_VERSION }}_iphoneos-arm.deb" ./main/Tweaks/uYou/ + unzip -q ./main/YouTube.ipa -d ./main/tmp + rm -rf ./main/tmp/Payload/YouTube.app/PlugIns/* + cp -R ./main/Extensions/*.appex ./main/tmp/Payload/YouTube.app/PlugIns + + env: + THEOS: ${{ env.workspace }}/theos + UYOU_VERSION: ${{ github.event.inputs.uyou_version }} + YOUTUBE_URL: ${{ github.event.inputs.decrypted_youtube_url }} + YOUTUBE_VERSION: ${{ github.event.inputs.youtube_version }} + + - name: Fix compiling && Build Package + id: build_package + run: | + cd ${{ env.workspace }}/main + (cd ${{ env.workspace }}/main/Tweaks/YouPiP && sed -i '' "14s#.*#YouPiP_FRAMEWORKS = AVKit AVFoundation UIKit#g" ./Makefile) + make package FINALPACKAGE=1 + echo "::set-output name=package::$(ls -t packages | head -n1)" + env: + THEOS: ${{ env.workspace }}/theos + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + UYOU_VERSION: ${{ github.event.inputs.uyou_version }} + YOUTUBE_VERSION: ${{ github.event.inputs.youtube_version }} + with: + tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }}) + release_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }}) + draft: true + prerelease: false + + - name: Upload Release Asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + UYOU_VERSION: ${{ github.event.inputs.uyou_version }} + YOUTUBE_VERSION: ${{ github.event.inputs.youtube_version }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ${{ env.workspace }}/main/packages/${{ steps.build_package.outputs.package }} + asset_name: uYouPlus_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }}.ipa + asset_content_type: application/vnd.debian.binary-package