uYouEnhanced/.github/workflows/buildapptest.yml
Workflow config file is invalid. Please check your config file: yaml: line 60: did not find expected '-' indicator

342 lines
10 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Build and Release uYouEnhanced
on:
workflow_dispatch:
inputs:
sdk_version:
description: "iOS SDK Version"
default: "17.5"
required: true
type: string
uyou_version:
description: "uYou Version"
default: "3.0.4"
required: true
type: string
decrypted_youtube_url:
description: "Direct URL of the decrypted YouTube IPA"
default: ""
required: true
type: string
bundle_id:
description: "Modify the bundle ID"
default: "com.google.ios.youtube"
required: true
type: string
app_name:
description: "Modify the app name"
default: "YouTube"
required: true
type: string
commit_id:
description: "(Optional) Commit ID to build at"
default: ""
required: false
type: string
upload_artifact:
description: "Upload IPA as artifact"
default: false
required: false
type: boolean
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 uYouEnhanced
runs-on: macos-14
permissions:
contents: write
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
steps:
- name: Checkout Main
uses: actions/checkout@v5
with:
path: main
ref: ${{ github.event.inputs.commit_id || github.ref }}
submodules: recursive
- name: Install Dependencies
run: brew install ldid dpkg make
- name: Set PATH environment variable
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
- name: Setup Theos
uses: actions/checkout@v5
with:
repository: theos/theos
ref: master
path: theos
submodules: recursive
- name: SDK Caching
id: SDK
uses: actions/cache@v4
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: |
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/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/checkout@v5
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: Hash YT ipa url
run: |
URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)"
echo ::add-mask::$URL_YT
echo URL_YT=$URL_YT >> $GITHUB_ENV
name: Build and Release uYouEnhanced
on:
workflow_dispatch:
inputs:
sdk_version:
description: "iOS SDK Version"
default: "17.5"
required: true
type: string
uyou_version:
description: "uYou Version"
default: "3.0.4"
required: true
type: string
decrypted_youtube_url:
description: "Direct URL of the decrypted YouTube IPA"
default: ""
required: true
type: string
bundle_id:
description: "Modify the bundle ID"
default: "com.google.ios.youtube"
required: true
type: string
app_name:
description: "Modify the app name"
default: "YouTube"
required: true
type: string
commit_id:
description: "(Optional) Commit ID to build at"
default: ""
required: false
type: string
upload_artifact:
description: "Upload IPA as artifact"
default: false
required: false
type: boolean
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 uYouEnhanced
runs-on: macos-14
permissions:
contents: write
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
steps:
- name: Checkout Main
uses: actions/checkout@v5
with:
path: main
ref: ${{ github.event.inputs.commit_id || github.ref }}
submodules: recursive
- name: Install Dependencies
run: brew install ldid dpkg make
- name: Set PATH environment variable
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
- name: Setup Theos
uses: actions/checkout@v5
with:
repository: theos/theos
ref: master
path: theos
submodules: recursive
- name: SDK Caching
id: SDK
uses: actions/cache@v4
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: |
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/aricloverALT/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/checkout@v5
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: Hash YT ipa url
run: |
URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)"
echo ::add-mask::$URL_YT
echo URL_YT=$URL_YT >> $GITHUB_ENV
- name: Debug URL
run: echo "URL is: $URL_YT"
- name: Prepare YouTube iPA
id: prepare_youtube
run: |
wget "$URL_YT" --quiet --no-verbose -O main/YouTube.ipa
cd ${{ github.workspace }}/main
mv YouTube.ipa YouTube.zip
unzip -q YouTube.zip
youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion)
echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT
env:
THEOS: ${{ github.workspace }}/theos
YOUTUBE_URL: ${{ env.URL_YT }}
- name: Fix compiling & Build Package
id: build_package
run: |
cd ${{ github.workspace }}/main
sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile
make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
env:
THEOS: ${{ github.workspace }}/theos
UYOU_VERSION: ${{ inputs.uyou_version }}
BUNDLE_ID: ${{ inputs.bundle_id }}
APP_NAME: ${{ inputs.app_name }}
- name: Upload Artifact
if: ${{ inputs.upload_artifact }}
uses: actions/upload-artifact@v5
with:
name: uYouEnhanced
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
if-no-files-found: error
- name: Create Release
if: ${{ inputs.create_release }}
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }}
name: uYouEnhanced Release
files: main/packages/*.ipa
draft: true
name: Debug URL
     run: echo "URL is: $URL_YT"
- name: Prepare YouTube iPA
id: prepare_youtube
run: |
wget "$URL_YT" --quiet --no-verbose -O main/YouTube.ipa
cd ${{ github.workspace }}/main
mv YouTube.ipa YouTube.zip
unzip -q YouTube.zip
youtube_version=$(defaults read "$(pwd)/Payload/YouTube.app/Info" CFBundleVersion)
echo "youtube_version=${youtube_version}" >> $GITHUB_OUTPUT
env:
THEOS: ${{ github.workspace }}/theos
YOUTUBE_URL: ${{ env.URL_YT }}
- name: Fix compiling & Build Package
id: build_package
run: |
cd ${{ github.workspace }}/main
sed -i '' "30s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
sed -i '' "29s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0#g" Makefile
make package THEOS_PACKAGE_SCHEME=rootless IPA=Payload/YouTube.app FINALPACKAGE=1
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
env:
THEOS: ${{ github.workspace }}/theos
UYOU_VERSION: ${{ inputs.uyou_version }}
BUNDLE_ID: ${{ inputs.bundle_id }}
APP_NAME: ${{ inputs.app_name }}
- name: Upload Artifact
if: ${{ inputs.upload_artifact }}
uses: actions/upload-artifact@v5
with:
name: uYouEnhanced
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
if-no-files-found: error
- name: Create Release
if: ${{ inputs.create_release }}
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.prepare_youtube.outputs.youtube_version }}-${{ inputs.uyou_version }}
name: uYouEnhanced Release
files: main/packages/*.ipa
draft: true