Build and Release uYouPlusExtra #1
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 uYouPlusExtra | |
on: | |
workflow_dispatch: | |
inputs: | |
sdk_version: | |
description: "iOS SDK version to be used during build" | |
default: "16.2" | |
required: true | |
type: string | |
youtube_version: | |
description: "The version of YouTube" | |
default: "" | |
required: true | |
type: string | |
uyou_version: | |
description: "The version of uYou" | |
default: "3.0.1" | |
required: true | |
type: string | |
decrypted_youtube_url: | |
description: "The direct URL to the decrypted YouTube ipa" | |
default: "" | |
required: true | |
type: string | |
create_release: | |
description: "Create a draft release" | |
default: true | |
required: false | |
type: boolean | |
bundle_id: | |
description: "Modify the bundle ID. Not recommended" | |
default: "com.google.ios.youtube" | |
required: true | |
type: string | |
app_name: | |
description: "Modify the name of the app on the Home Screen. Not recommended" | |
default: "YouTube" | |
required: true | |
type: string | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build uYouPlus | |
runs-on: macos-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Install Dependencies | |
run: brew install bzip2 curl dpkg jq ldid make node svn wget xz | |
- name: Set PATH environment variable | |
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH | |
- name: Checkout Main | |
uses: actions/checkout@v4.1.1 | |
with: | |
path: main | |
submodules: recursive | |
- name: Setup Theos | |
uses: actions/checkout@v4.1.1 | |
with: | |
repository: theos/theos | |
ref: 3da31488281ecf4394d10302d2629607f4a1aa07 | |
path: theos | |
submodules: recursive | |
- name: SDK Caching | |
id: SDK | |
uses: actions/cache@v3.3.2 | |
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: | | |
svn checkout -q https://github.com/arichorn/sdks/trunk/iPhoneOS${{ inputs.sdk_version }}.sdk | |
mv *.sdk $THEOS/sdks | |
env: | |
THEOS: ${{ github.workspace }}/theos | |
- name: Setup Theos Jailed | |
uses: actions/checkout@v4.1.1 | |
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: Download YouTube iPA | |
run: | | |
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa && echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} downloaded! \033[0m" | |
env: | |
THEOS: ${{ github.workspace }}/theos | |
YOUTUBE_VERSION: ${{ inputs.youtube_version }} | |
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }} | |
- name: Fix compiling & Build Package | |
id: build_package | |
run: | | |
cd ${{ github.workspace }}/main | |
sed -i '' "27s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile | |
sed -i '' "26s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile | |
make package IPA=YouTube.ipa FINALPACKAGE=1 | |
(mv "packages/$(ls -t packages | head -n1)" "packages/uYouPlusExtra_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_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 | |
UYOU_VERSION: ${{ inputs.uyou_version }} | |
YOUTUBE_VERSION: ${{ inputs.youtube_version }} | |
BUNDLE_ID: ${{ inputs.bundle_id }} | |
APP_NAME: ${{ inputs.app_name }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3.1.3 | |
env: | |
UYOU_VERSION: ${{ inputs.uyou_version }} | |
YOUTUBE_VERSION: ${{ inputs.youtube_version }} | |
with: | |
name: uYouPlusExtra_${{ env.YOUTUBE_VERSION }}_${{ env.UYOU_VERSION }} | |
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }} | |
if-no-files-found: error | |
- name: Create Release | |
id: create_release | |
uses: softprops/action-gh-release@v0.1.15 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
UYOU_VERSION: ${{ inputs.uyou_version }} | |
YOUTUBE_VERSION: ${{ inputs.youtube_version }} | |
DRAFT: ${{ inputs.create_release }} | |
with: | |
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }}) | |
name: v${{ env.YOUTUBE_VERSION }}-${{ env.UYOU_VERSION }}-(${{ github.run_number }}) | |
files: main/packages/*.ipa | |
draft: ${{ env.DRAFT }} |