Build and Release YTMusicUltimate #96
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
# Original idea by @ISnackable. Thanks to him for handling the hardest parts! | |
# https://github.com/ISnackable/YTCubePlus/blob/main/.github/workflows/Build.yml | |
name: Build and Release YTMusicUltimate IPA | |
on: | |
workflow_dispatch: | |
inputs: | |
sdk_version: | |
description: "iOS SDK version to be used during build" | |
default: "16.2" | |
required: true | |
type: string | |
ytmusicultimate_version: | |
description: "The version of YTMusicUltimate" | |
default: "2.0.2" | |
required: true | |
type: string | |
decrypted_youtubemusic_url: | |
description: "The direct URL to the decrypted YouTube Music ipa" | |
default: "" | |
required: true | |
type: string | |
youtubemusic_version: | |
description: "The version of YouTube Music" | |
default: "" | |
required: true | |
type: string | |
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 YTMusicUltimate IPA | |
runs-on: macos-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout Main | |
uses: actions/[email protected] | |
with: | |
path: main | |
submodules: recursive | |
- name: Install Dependencies | |
run: brew install ldid dpkg | |
- name: Setup Theos | |
uses: actions/[email protected] | |
with: | |
repository: theos/theos | |
ref: master | |
path: theos | |
submodules: recursive | |
- name: Caching | |
id: SDK | |
uses: actions/[email protected] | |
env: | |
cache-name: iOS-16.2-SDK | |
with: | |
path: theos/sdks/ | |
key: ${{ 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/arichorn/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/[email protected] | |
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: Prepare YouTube Music iPA | |
run: | | |
curl "https://raw.githubusercontent.com/Muirey03/RemoteLog/master/RemoteLog.h" --output "$THEOS/include/RemoteLog.h" | |
wget "$YOUTUBEMUSIC_URL" --no-verbose -O ./main/YouTubeMusic.ipa | |
unzip -q ./main/YouTubeMusic.ipa -d ./main/tmp | |
rm -rf ./main/tmp/Payload/YouTubeMusic.app/Watch | |
env: | |
THEOS: ${{ github.workspace }}/theos | |
YOUTUBEMUSIC_URL: ${{ inputs.decrypted_youtubemusic_url }} | |
- name: Fix compiling & Build Package | |
run: | | |
(echo 'THEOS_IGNORE_PARALLEL_BUILDING_NOTICE = yes' >> ~/.theosrc) | |
cd ${{ github.workspace }}/main | |
make package FINALPACKAGE=1 THEOS_DEVICE_IP=localhost THEOS_PACKAGE_SCHEME=rootless SIDELOADING=1 | |
(mv "packages/$(ls -t packages | head -n1)" "packages/YTMusicUltimate_${{ env.YOUTUBEMUSIC_VERSION }}_${{ env.YTMUSICULTIMATE_VERSION }}.ipa") | |
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT | |
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m" | |
env: | |
THEOS: ${{ github.workspace }}/theos | |
YTMUSICULTIMATE_VERSION: ${{ inputs.ytmusicultimate_version }} | |
YOUTUBEMUSIC_VERSION: ${{ inputs.youtubemusic_version }} | |
- name: Upload Artifact | |
uses: actions/[email protected] | |
env: | |
YTMUSICULTIMATE_VERSION: ${{ inputs.ytmusicultimate_version }} | |
YOUTUBEMUSIC_VERSION: ${{ inputs.youtubemusic_version }} | |
with: | |
name: YTMusicUUltimate_${{ env.YOUTUBEMUSIC_VERSION }}_${{ env.YTMUSICULTIMATE_VERSION }} | |
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} | |
if-no-files-found: error | |
- name: Create Release | |
id: create_release | |
uses: softprops/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
YTMUSICULTIMATE_VERSION: ${{ inputs.ytmusicultimate_version }} | |
YOUTUBEMUSIC_VERSION: ${{ inputs.youtubemusic_version }} | |
DRAFT: ${{ inputs.create_release }} | |
with: | |
tag_name: v${{ env.YOUTUBEMUSIC_VERSION }}-${{ env.YTMUSICULTIMATE_VERSION }}-(${{ github.run_number }}) | |
name: v${{ env.YOUTUBEMUSIC_VERSION }}-${{ env.YTMUSICULTIMATE_VERSION }}-(${{ github.run_number }}) | |
files: main/packages/*.ipa | |
draft: ${{ env.DRAFT }} |