forked from dayanch96/YTMusicUltimate
-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ca48693
commit b19be57
Showing
1 changed file
with
153 additions
and
0 deletions.
There are no files selected for viewing
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 file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
# 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: | ||
ytmusicultimate_version: | ||
description: "The version of YTMusicUltimate" | ||
default: "2.0.1" | ||
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 | ||
bundle_id: | ||
description: "Modify the bundle ID. Not recommended" | ||
default: "com.google.ios.youtubemusic" | ||
required: true | ||
type: string | ||
app_name: | ||
description: "Modify the name of the app on the Home Screen. Not recommended" | ||
default: "YouTube Music" | ||
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 16.2 SDK | ||
if: steps.SDK.outputs.cache-hit != 'true' | ||
run: | | ||
svn checkout -q https://github.com/arichorn/sdks/trunk/iPhoneOS16.2.sdk | ||
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 | ||
id: build_package | ||
run: | | ||
(echo 'THEOS_IGNORE_PARALLEL_BUILDING_NOTICE = yes' >> ~/.theosrc) | ||
cd ${{ github.workspace }}/main | ||
sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile | ||
sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile | ||
make package FINALPACKAGE=1 SIDELOADED=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" | ||
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m" | ||
env: | ||
THEOS: ${{ github.workspace }}/theos | ||
YTMUSICULTIMATE_VERSION: ${{ inputs.ytmusicultimate_version }} | ||
YOUTUBEMUSIC_VERSION: ${{ inputs.youtubemusic_version }} | ||
BUNDLE_ID: ${{ inputs.bundle_id }} | ||
APP_NAME: ${{ inputs.app_name }} | ||
|
||
- name: Upload Artifact | ||
uses: actions/[email protected] | ||
env: | ||
YTMUSICULTIMATE_VERSION: ${{ inputs.ytmusicultimate_version }} | ||
YOUTUBEMUSIC_VERSION: ${{ inputs.youtubemusic_version }} | ||
with: | ||
name: YTMusicUltimate_${{ 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 }} |