diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 98d0a9f..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,142 +0,0 @@ -name: Build - -on: - workflow_dispatch: - inputs: - ipa_url: - description: "Direct link to the decrypted IPA" - default: "" - required: true - type: string - -env: - GH_TOKEN: ${{ github.token }} - -jobs: - build-tweak: - runs-on: macos-14 - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - submodules: true - - - name: Download Tweak - run: | - set +e - - release_info=$(gh api --header 'Accept: application/vnd.github+json' repos/${{ github.repository }}/releases/latest) - status_code=$(echo $release_info | jq -r ".status") - - if [ "$status_code" != "null" ]; then - echo "No releases found or request failed, status code: $status_code" - echo "DEB_DOWNLOADED=false" >> $GITHUB_ENV - exit 0 - fi - - set -e - - release_version=$(echo "$release_info" | jq -r '.assets[] | select(.name | contains("iphoneos-arm.deb")) | .name' | grep -o '_[0-9.]\+_' | tr -d '_') - control_version=$(grep '^Version:' control | cut -d ' ' -f 2) - - if [ "$release_version" = "$control_version" ]; then - echo "Versions match. Downloading DEB files..." - echo "$release_info" | jq -r '.assets[] | select(.name | endswith(".deb")) | .browser_download_url' | xargs -I {} curl -L -O {} - echo "DEB_DOWNLOADED=true" >> $GITHUB_ENV - else - echo "Versions do not match. No files will be downloaded." - echo "DEB_DOWNLOADED=false" >> $GITHUB_ENV - exit 0 - fi - - - name: Check cache - if: env.DEB_DOWNLOADED == 'false' - run: echo upstream_heads=`git ls-remote https://github.com/theos/theos | head -n 1 | cut -f 1`-`git ls-remote https://github.com/theos/sdks | head -n 1 | cut -f 1` >> $GITHUB_ENV - - - name: Use cache - if: env.DEB_DOWNLOADED == 'false' - id: cache - uses: actions/cache@v4 - with: - path: ${{ github.workspace }}/theos - key: ${{ runner.os }}-${{ env.upstream_heads }} - - - name: Prepare Theos - if: env.DEB_DOWNLOADED == 'false' - uses: Randomblock1/theos-action@v1 - - - name: Build packages - if: env.DEB_DOWNLOADED == 'false' - run: make package FINALPACKAGE=1 && make package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=rootless - - - name: Set DEB path - run: | - if [ "${{ env.DEB_DOWNLOADED }}" == "true" ]; then - echo "DEB_PATH=${{ github.workspace }}/*-arm.deb" >> $GITHUB_ENV - echo "ROOTLESS_DEB_PATH=${{ github.workspace }}/*-arm64.deb" >> $GITHUB_ENV - else - echo "DEB_PATH=${{ github.workspace }}/packages/*-arm.deb" >> $GITHUB_ENV - echo "ROOTLESS_DEB_PATH=${{ github.workspace }}/packages/*-arm64.deb" >> $GITHUB_ENV - fi - - - name: Upload package - uses: actions/upload-artifact@v4 - with: - name: package - path: ${{ env.DEB_PATH }} - - - name: Upload rootless package - uses: actions/upload-artifact@v4 - with: - name: rootless package - path: ${{ env.ROOTLESS_DEB_PATH }} - - build-ipa: - runs-on: macos-14 - needs: build-tweak - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Download build artifacts - uses: actions/download-artifact@v4 - with: - merge-multiple: true - - - name: Download Discord IPA - run: | - curl -L -o discord.ipa ${{ github.event.inputs.ipa_url }} - - - name: Download IPA icons - run: | - curl -L -o ipa-icons.zip https://raw.githubusercontent.com/pyoncord/assets/main/ipa-icons.zip - - - name: Extract Values - run: | - NAME=$(grep '^Name:' control | cut -d ' ' -f 2) - PACKAGE=$(grep '^Package:' control | cut -d ' ' -f 2) - VERSION=$(grep '^Version:' control | cut -d ' ' -f 2) - DEB_FILE_NAME="${PACKAGE}_${VERSION}_iphoneos-arm.deb" - echo "DEB_FILE_NAME=$DEB_FILE_NAME" >> $GITHUB_ENV - echo "APP_NAME=$NAME" >> $GITHUB_ENV - - - name: Run patcher - run: | - curl -L -o patcher https://github.com/amsyarasyiq/bunny-ipa-patcher/releases/download/release-pyon/patcher.mac-amd64 - chmod +x patcher - ./patcher -d ./discord.ipa -o ./discord.ipa -i ./ipa-icons.zip - - - name: Install cyan - run: pip install --force-reinstall https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip Pillow - - - name: Inject tweak - run: | - cyan -duws -i discord.ipa -o ${{ github.workspace }}/${{ env.APP_NAME }}.ipa -f ${{ github.workspace }}/${{ env.DEB_FILE_NAME }} - - - name: Upload ipa as artifact - uses: actions/upload-artifact@v4 - with: - name: ipa - path: ${{ github.workspace }}/${{ env.APP_NAME }}.ipa diff --git a/.github/workflows/release.yml b/.github/workflows/deploy.yml similarity index 94% rename from .github/workflows/release.yml rename to .github/workflows/deploy.yml index c8e969f..a3e7d7a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/deploy.yml @@ -1,4 +1,5 @@ -name: Release +name: Deploy +run-name: ${{ github.event.inputs.release == true && 'Release' || 'Build' }} for ${{ github.event.inputs.ipa_url }} on: workflow_dispatch: @@ -8,10 +9,15 @@ on: default: "" required: true type: string + release: + description: 'Release the build' + required: true + type: boolean env: GH_TOKEN: ${{ github.token }} + jobs: build-tweak: runs-on: macos-14 @@ -123,7 +129,13 @@ jobs: ROOTLESS_DEB_FILE_NAME="${PACKAGE}_${VERSION}_iphoneos-arm64.deb" echo "ROOTLESS_DEB_FILE_NAME=$ROOTLESS_DEB_FILE_NAME" >> $GITHUB_ENV echo "APP_NAME=$NAME" >> $GITHUB_ENV - + + - name: Run patcher + run: | + curl -L -o patcher https://github.com/amsyarasyiq/bunny-ipa-patcher/releases/download/release-pyon/patcher.mac-amd64 + chmod +x patcher + ./patcher -d discord.ipa -o discord.ipa -i ./ipa-icons.zip + - name: Install cyan run: pip install --force-reinstall https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip Pillow @@ -131,12 +143,6 @@ jobs: run: | cyan -duws -i discord.ipa -o ${{ github.workspace }}/${{ env.APP_NAME }}.ipa -f ${{ github.workspace }}/${{ env.DEB_FILE_NAME }} - - name: Run patcher - run: | - curl -L -o patcher https://github.com/amsyarasyiq/bunny-ipa-patcher/releases/download/release-pyon/patcher.mac-amd64 - chmod +x patcher - ./patcher -d ${{ github.workspace }}/${{ env.APP_NAME }}.ipa -o ${{ github.workspace }}/${{ env.APP_NAME }}.ipa -i ./ipa-icons.zip - - name: Upload ipa as artifact uses: actions/upload-artifact@v4 with: @@ -144,6 +150,7 @@ jobs: path: ${{ github.workspace }}/${{ env.APP_NAME }}.ipa release-app: + if: ${{ github.event.inputs.release == true }} runs-on: macos-14 needs: build-ipa permissions: @@ -190,6 +197,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} app-repo: + if: ${{ github.event.inputs.release == true }} continue-on-error: true runs-on: macos-14 needs: release-app