From fd5ae2bd2ba9fba102e7c19d6c545698942f4bb0 Mon Sep 17 00:00:00 2001 From: Dan <38832025+dayanch96@users.noreply.github.com> Date: Sat, 7 Dec 2024 07:04:57 +0300 Subject: [PATCH] Improves workflows, removes old ones --- .github/workflows/main.yml | 218 +++++++++++++++++- .../{ytp_link_tweaks.yml => ytp_beta.yml} | 113 ++++++++- .github/workflows/ytp_tweaks.yml | 173 -------------- 3 files changed, 313 insertions(+), 191 deletions(-) rename .github/workflows/{ytp_link_tweaks.yml => ytp_beta.yml} (59%) delete mode 100644 .github/workflows/ytp_tweaks.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 36e40e5..ef9346a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -3,8 +3,39 @@ name: Create YouTube Plus app on: workflow_dispatch: inputs: + + enable_youpip: + description: "Integrate YouPiP" + type: boolean + required: true + default: true + + enable_ytuhd: + description: "Integrate YTUHD" + type: boolean + required: true + default: true + + enable_ryd: + description: "Integrate Return YouTube Dislikes" + type: boolean + required: true + default: true + + enable_yq: + description: "Integrate YouQuality" + type: boolean + required: true + default: true + + enable_demc: + description: "Integrate DontEatMyContent" + type: boolean + required: true + default: true + ipa_url: - description: "The direct URL to the decrypted IPA file" + description: "URL to the decrypted IPA file" default: "" required: true type: string @@ -15,6 +46,12 @@ on: required: true type: string + info_note: + description: "TIP: Learn more about integrations in the README via the link below" + default: "https://github.com/dayanch96/YTLite#how-to-build-a-youtube-plus-app-by-yourself-using-github-actions" + type: string + required: false + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -33,12 +70,51 @@ jobs: path: main submodules: recursive + - name: Install Dependencies + run: brew install make ldid + - name: Set PATH environment variable run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH + - name: Cache Theos + id: theos + uses: actions/cache@v4.0.1 + env: + cache-name: theos_cache_67db2ab + with: + path: theos/ + key: ${{ env.cache-name }} + restore-keys: ${{ env.cache-name }} + + - name: Setup Theos + if: steps.theos.outputs.cache-hit != 'true' + uses: actions/checkout@v4.1.7 + with: + repository: theos/theos + ref: 67db2ab8d950910161730de77c322658ea3e6b44 + path: ${{ github.workspace }}/theos + submodules: recursive + + - name: Download iOS SDK + if: steps.theos.outputs.cache-hit != 'true' + run: | + git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/ + cd sdks + git sparse-checkout set --no-cone iPhoneOS16.5.sdk + git checkout + mv *.sdk $THEOS/sdks + env: + THEOS: ${{ github.workspace }}/theos + - name: Install cyan run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip + - name: Download YouTube Plus + id: download_ytp + run: | + deb_url="https://github.com/dayanch96/YTLite/releases/download/v${{ inputs.tweak_version }}/com.dvntm.ytlite_${{ inputs.tweak_version }}_iphoneos-arm.deb" + wget "$deb_url" --no-verbose -O ${{ github.workspace }}/ytplus.deb + - name: Hide sensitive inputs uses: levibostian/action-hide-sensitive-inputs@v1 @@ -46,12 +122,6 @@ jobs: id: download_youtube run: wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/youtube.ipa - - name: Download YouTube Plus - id: download_ytp - run: | - deb_url="https://github.com/dayanch96/YTLite/releases/download/v${{ inputs.tweak_version }}/com.dvntm.ytlite_${{ inputs.tweak_version }}_iphoneos-arm.deb" - wget "$deb_url" --no-verbose -O ${{ github.workspace }}/ytplus.deb - - name: Clone Open in YouTube (Safari extension) run: | git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/CokePokes/YoutubeExtensions/ @@ -60,8 +130,136 @@ jobs: git checkout mv *.appex ${{ github.workspace }} - - name: Inject tweak into IPA - run: cyan -i youtube.ipa -o YouTubePlus_${{ inputs.tweak_version }}.ipa -uwf ytplus.deb OpenYoutubeSafariExtension.appex + - name: Clone YouTubeHeader + run: | + if [ -d "$THEOS/include/YouTubeHeader" ]; then + echo "YouTubeHeader exists. Pulling latest changes..." + cd $THEOS/include/YouTubeHeader + git pull + else + echo "YouTubeHeader does not exist. Cloning repository..." + cd $THEOS/include + git clone --quiet --depth=1 https://github.com/PoomSmart/YouTubeHeader.git + fi + env: + THEOS: ${{ github.workspace }}/theos + + - name: Clone YouPiP + if: ${{ inputs.enable_youpip }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YouPiP.git + + - name: Clone YTUHD + if: ${{ inputs.enable_ytuhd }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YTUHD.git + + - name: Clone Return-YouTube-Dislikes + if: ${{ inputs.enable_ryd }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/Return-YouTube-Dislikes.git + + - name: Clone YouGroupSettings + if: ${{ inputs.enable_demc }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YouGroupSettings.git + + - name: Clone YouQuality + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YouQuality.git + + - name: Clone YTVideoOverlay + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YTVideoOverlay.git + + - name: Clone DontEatMyContent + if: ${{ inputs.enable_demc }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 --recurse-submodules https://github.com/therealFoxster/DontEatMyContent.git + + - name: Build YouPiP + if: ${{ inputs.enable_youpip }} + run: | + cd ${{ github.workspace }}/YouPiP + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/youpip.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build YTUHD + if: ${{ inputs.enable_ytuhd }} + run: | + cd ${{ github.workspace }}/YTUHD + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/ytuhd.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build Return-YouTube-Dislikes + if: ${{ inputs.enable_ryd }} + run: | + cd ${{ github.workspace }}/Return-YouTube-Dislikes + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/ryd.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build YouGroupSettings + if: ${{ inputs.enable_demc }} + run: | + cd ${{ github.workspace }}/YouGroupSettings + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/ygs.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build YouQuality + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }}/YouQuality + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/yq.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build YTVideoOverlay + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }}/YTVideoOverlay + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/ytvo.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build DontEatMyContent + if: ${{ inputs.enable_demc }} + run: | + cd ${{ github.workspace }}/DontEatMyContent + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/demc.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Inject tweaks into IPA + run: | + tweaks="ytplus.deb OpenYoutubeSafariExtension.appex" + + for deb in youpip.deb ytuhd.deb ryd.deb ygs.deb yq.deb ytvo.deb demc.deb; do + if [ -f "$deb" ]; then + tweaks="$tweaks $deb" + fi + done + + cyan -i youtube.ipa -o YouTubePlus_${{ inputs.tweak_version }}.ipa -uwf $tweaks - name: Upload to GitHub Releases uses: softprops/action-gh-release@v2.0.1 @@ -69,4 +267,4 @@ jobs: tag_name: v${{ github.run_number }} name: YouTubePlus v${{ inputs.tweak_version }} (${{ github.run_number }}) files: YouTubePlus_${{ inputs.tweak_version }}.ipa - draft: true + draft: true \ No newline at end of file diff --git a/.github/workflows/ytp_link_tweaks.yml b/.github/workflows/ytp_beta.yml similarity index 59% rename from .github/workflows/ytp_link_tweaks.yml rename to .github/workflows/ytp_beta.yml index a59875a..2a8e97e 100644 --- a/.github/workflows/ytp_link_tweaks.yml +++ b/.github/workflows/ytp_beta.yml @@ -1,20 +1,57 @@ -name: '[LINK] YouTube Plus + YouPiP, YTUHD and RYD' +name: '[BETA] Create YouTube Plus app' on: workflow_dispatch: inputs: + + enable_youpip: + description: "Integrate YouPiP" + type: boolean + required: true + default: true + + enable_ytuhd: + description: "Integrate YTUHD" + type: boolean + required: true + default: true + + enable_ryd: + description: "Integrate Return YouTube Dislikes" + type: boolean + required: true + default: true + + enable_yq: + description: "Integrate YouQuality" + type: boolean + required: true + default: true + + enable_demc: + description: "Integrate DontEatMyContent" + type: boolean + required: true + default: true + ipa_url: - description: "Direct link to the decrypted IPA file (not to the web-page)" + description: "URL to the decrypted IPA file" default: "" required: true type: string tweak_url: - description: "Direct link to the YouTube Plus tweak file (not to the web-page)" + description: "URL to the YouTube Plus tweak file" default: "" required: true type: string + info_note: + description: "TIP: Learn more about integrations in the README via the link below" + default: "https://github.com/dayanch96/YTLite#how-to-build-a-youtube-plus-app-by-yourself-using-github-actions" + type: string + required: false + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -106,26 +143,49 @@ jobs: THEOS: ${{ github.workspace }}/theos - name: Clone YouPiP + if: ${{ inputs.enable_youpip }} run: | cd ${{ github.workspace }} git clone --quiet --depth=1 https://github.com/PoomSmart/YouPiP.git - name: Clone YTUHD + if: ${{ inputs.enable_ytuhd }} run: | cd ${{ github.workspace }} git clone --quiet --depth=1 https://github.com/PoomSmart/YTUHD.git - name: Clone Return-YouTube-Dislikes + if: ${{ inputs.enable_ryd }} run: | cd ${{ github.workspace }} git clone --quiet --depth=1 https://github.com/PoomSmart/Return-YouTube-Dislikes.git - name: Clone YouGroupSettings + if: ${{ inputs.enable_demc }} run: | cd ${{ github.workspace }} git clone --quiet --depth=1 https://github.com/PoomSmart/YouGroupSettings.git + - name: Clone YouQuality + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YouQuality.git + + - name: Clone YTVideoOverlay + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 https://github.com/PoomSmart/YTVideoOverlay.git + + - name: Clone DontEatMyContent + if: ${{ inputs.enable_demc }} + run: | + cd ${{ github.workspace }} + git clone --quiet --depth=1 --recurse-submodules https://github.com/therealFoxster/DontEatMyContent.git + - name: Build YouPiP + if: ${{ inputs.enable_youpip }} run: | cd ${{ github.workspace }}/YouPiP make clean package DEBUG=0 FINALPACKAGE=1 @@ -134,6 +194,7 @@ jobs: THEOS: ${{ github.workspace }}/theos - name: Build YTUHD + if: ${{ inputs.enable_ytuhd }} run: | cd ${{ github.workspace }}/YTUHD make clean package DEBUG=0 FINALPACKAGE=1 @@ -142,6 +203,7 @@ jobs: THEOS: ${{ github.workspace }}/theos - name: Build Return-YouTube-Dislikes + if: ${{ inputs.enable_ryd }} run: | cd ${{ github.workspace }}/Return-YouTube-Dislikes make clean package DEBUG=0 FINALPACKAGE=1 @@ -150,6 +212,7 @@ jobs: THEOS: ${{ github.workspace }}/theos - name: Build YouGroupSettings + if: ${{ inputs.enable_demc }} run: | cd ${{ github.workspace }}/YouGroupSettings make clean package DEBUG=0 FINALPACKAGE=1 @@ -157,15 +220,49 @@ jobs: env: THEOS: ${{ github.workspace }}/theos + - name: Build YouQuality + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }}/YouQuality + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/yq.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build YTVideoOverlay + if: ${{ inputs.enable_yq }} + run: | + cd ${{ github.workspace }}/YTVideoOverlay + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/ytvo.deb + env: + THEOS: ${{ github.workspace }}/theos + + - name: Build DontEatMyContent + if: ${{ inputs.enable_demc }} + run: | + cd ${{ github.workspace }}/DontEatMyContent + make clean package DEBUG=0 FINALPACKAGE=1 + mv packages/*.deb ${{ github.workspace }}/demc.deb + env: + THEOS: ${{ github.workspace }}/theos + - name: Inject tweaks into IPA run: | - cyan -i youtube.ipa -o YTPlus_Tweaks.ipa \ - -uwf ytplus.deb OpenYoutubeSafariExtension.appex youpip.deb ytuhd.deb ryd.deb ygs.deb + tweaks="ytplus.deb OpenYoutubeSafariExtension.appex" + + for deb in youpip.deb ytuhd.deb ryd.deb ygs.deb yq.deb ytvo.deb demc.deb; do + if [ -f "$deb" ]; then + tweaks="$tweaks $deb" + fi + done + + cyan -i youtube.ipa -o YouTubePlus_Beta.ipa -uwf $tweaks - name: Upload to GitHub Releases uses: softprops/action-gh-release@v2.0.1 with: tag_name: v${{ github.run_number }} - name: YouTubePlus + Tweaks (${{ github.run_number }}) - files: YTPlus_Tweaks.ipa - draft: true + name: YouTubePlus Beta (${{ github.run_number }}) + files: YouTubePlus_Beta.ipa + draft: true \ No newline at end of file diff --git a/.github/workflows/ytp_tweaks.yml b/.github/workflows/ytp_tweaks.yml deleted file mode 100644 index 4259e69..0000000 --- a/.github/workflows/ytp_tweaks.yml +++ /dev/null @@ -1,173 +0,0 @@ -name: YouTube Plus + YouPiP, YTUHD and RYD - -on: - workflow_dispatch: - inputs: - ipa_url: - description: "The direct URL to the decrypted IPA file" - default: "" - required: true - type: string - - tweak_version: - description: "The version of the tweak to use. Enter the version manually from dayanch96/YTLite/releases or leave default" - default: "5.1" - required: true - type: string - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - name: - runs-on: macos-latest - permissions: - contents: write - - steps: - - name: Checkout Main - uses: actions/checkout@v4.1.1 - with: - path: main - submodules: recursive - - - name: Install Dependencies - run: brew install make ldid - - - name: Set PATH environment variable - run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH - - - name: Cache Theos - id: theos - uses: actions/cache@v4.0.1 - env: - cache-name: theos_cache_67db2ab - with: - path: theos/ - key: ${{ env.cache-name }} - restore-keys: ${{ env.cache-name }} - - - name: Setup Theos - if: steps.theos.outputs.cache-hit != 'true' - uses: actions/checkout@v4.1.7 - with: - repository: theos/theos - ref: 67db2ab8d950910161730de77c322658ea3e6b44 - path: ${{ github.workspace }}/theos - submodules: recursive - - - name: Download iOS SDK - if: steps.theos.outputs.cache-hit != 'true' - run: | - git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/ - cd sdks - git sparse-checkout set --no-cone iPhoneOS16.5.sdk - git checkout - mv *.sdk $THEOS/sdks - env: - THEOS: ${{ github.workspace }}/theos - - - name: Install cyan - run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip - - - name: Hide sensitive inputs - uses: levibostian/action-hide-sensitive-inputs@v1 - - - name: Download YouTube - id: download_youtube - run: wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/youtube.ipa - - - name: Download YouTube Plus - id: download_ytp - run: | - deb_url="https://github.com/dayanch96/YTLite/releases/download/v${{ inputs.tweak_version }}/com.dvntm.ytlite_${{ inputs.tweak_version }}_iphoneos-arm.deb" - wget "$deb_url" --no-verbose -O ${{ github.workspace }}/ytplus.deb - - - name: Clone Open in YouTube (Safari extension) - run: | - git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/CokePokes/YoutubeExtensions/ - cd YoutubeExtensions - git sparse-checkout set --no-cone OpenYoutubeSafariExtension.appex - git checkout - mv *.appex ${{ github.workspace }} - - - name: Clone YouTubeHeader - run: | - if [ -d "$THEOS/include/YouTubeHeader" ]; then - echo "YouTubeHeader exists. Pulling latest changes..." - cd $THEOS/include/YouTubeHeader - git pull - else - echo "YouTubeHeader does not exist. Cloning repository..." - cd $THEOS/include - git clone --quiet --depth=1 https://github.com/PoomSmart/YouTubeHeader.git - fi - env: - THEOS: ${{ github.workspace }}/theos - - - name: Clone YouPiP - run: | - cd ${{ github.workspace }} - git clone --quiet --depth=1 https://github.com/PoomSmart/YouPiP.git - - - name: Clone YTUHD - run: | - cd ${{ github.workspace }} - git clone --quiet --depth=1 https://github.com/PoomSmart/YTUHD.git - - - name: Clone Return-YouTube-Dislikes - run: | - cd ${{ github.workspace }} - git clone --quiet --depth=1 https://github.com/PoomSmart/Return-YouTube-Dislikes.git - - - name: Clone YouGroupSettings - run: | - cd ${{ github.workspace }} - git clone --quiet --depth=1 https://github.com/PoomSmart/YouGroupSettings.git - - - name: Build YouPiP - run: | - cd ${{ github.workspace }}/YouPiP - make clean package DEBUG=0 FINALPACKAGE=1 - mv packages/*.deb ${{ github.workspace }}/youpip.deb - env: - THEOS: ${{ github.workspace }}/theos - - - name: Build YTUHD - run: | - cd ${{ github.workspace }}/YTUHD - make clean package DEBUG=0 FINALPACKAGE=1 - mv packages/*.deb ${{ github.workspace }}/ytuhd.deb - env: - THEOS: ${{ github.workspace }}/theos - - - name: Build Return-YouTube-Dislikes - run: | - cd ${{ github.workspace }}/Return-YouTube-Dislikes - make clean package DEBUG=0 FINALPACKAGE=1 - mv packages/*.deb ${{ github.workspace }}/ryd.deb - env: - THEOS: ${{ github.workspace }}/theos - - - name: Build YouGroupSettings - run: | - cd ${{ github.workspace }}/YouGroupSettings - make clean package DEBUG=0 FINALPACKAGE=1 - mv packages/*.deb ${{ github.workspace }}/ygs.deb - env: - THEOS: ${{ github.workspace }}/theos - - - name: Inject tweaks into IPA - run: | - cyan -i youtube.ipa -o YouTubePlus_${{ inputs.tweak_version }}_Tweaks.ipa \ - -uwf ytplus.deb OpenYoutubeSafariExtension.appex youpip.deb ytuhd.deb ryd.deb ygs.deb - - - name: Upload to GitHub Releases - uses: softprops/action-gh-release@v2.0.1 - with: - tag_name: v${{ github.run_number }} - name: YouTubePlus v${{ inputs.tweak_version }} + Tweaks (${{ github.run_number }}) - files: YouTubePlus_${{ inputs.tweak_version }}_Tweaks.ipa - draft: true