level3tjg / RedditFilter

iOS Tweak - Filter out unwanted content from your Reddit feed
73 stars 14 forks source link

Github actions upload own reddit ipa #13

Closed Joshua-18 closed 1 month ago

Joshua-18 commented 1 month ago

Would it be possible to have an option to upload our own reddit ipa’s?

level3tjg commented 1 month ago

Added a new action input for an ipa url

Joshua-18 commented 1 month ago

Thank you for implementing this into the github action, however im now getting this error: IMG_7618 I was playing around with the YTLitePlus repo and found that they do things differently. with some chatgpt black magic i was able to borrow some of their code and make external downloads work, however the naming of the ipa afterwards is weird and doesn’t match how you do it, but anyways this is the code:



on:
  push:
  workflow_dispatch:
    inputs:
      create_release:
        description: "Create draft release"
        default: true
        type: boolean
      ipa_url:
        description: "The direct URL to the decrypted Reddit IPA"
        required: true

jobs:
  build:
    runs-on: ubuntu-22.04

    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive

      - name: Get package info
        id: package_info
        run: |
          version=$(cat Makefile | grep "PACKAGE_VERSION =" | cut -d' ' -f3)
          if [ -z $version ]; then
            version=$(cat control | grep "Version:" | cut -d' ' -f2)
          fi
          echo "id=$(cat control | grep "Package:" | cut -d' ' -f2)" >> $GITHUB_OUTPUT
          echo "version=$version" >> $GITHUB_OUTPUT

      - name: Install dependencies
        if: ${{ inputs.create_release }}
        run: |
          sudo apt update
          sudo apt install -y build-essential checkinstall git autoconf automake libtool-bin rsync llvm xmlstarlet libplist-utils
          curl -L https://github.com/libimobiledevice/libplist/releases/download/2.4.0/libplist-2.4.0.tar.bz2 | bzip2 -d | tar -x
          cd libplist*
          ./configure
          sudo make install
          sudo ldconfig

      - name: Download IPA
        if: ${{ inputs.create_release }}
        id: download_ipa
        run: |
          curl -L "${{ inputs.ipa_url }}" -o ${{ github.workspace }}/App.ipa

      - name: Setup theos
        uses: level3tjg/theos-action@main
        with:
          cache: true
          cache-dir-theos: ${{ github.workspace }}/theos
          cache-dir-sdks: ${{ github.workspace }}/theos/sdks

      - name: Checkout theos-jailed
        if: ${{ inputs.create_release }}
        uses: actions/checkout@v4
        with:
          repository: level3tjg/theos-jailed
          path: theos-jailed
          submodules: recursive

      - name: Install theos-jailed
        if: ${{ inputs.create_release }}
        run: |
          ./theos-jailed/install
          cd libplist*
          sudo make uninstall

      - name: Build rootless deb
        run: make package
        env:
          FINALPACKAGE: ${{ inputs.create_release }}
          THEOS_PACKAGE_SCHEME: rootless

      - name: Build rootful deb
        run: make clean package
        env:
          FINALPACKAGE: ${{ inputs.create_release }}

      - name: Build IPA
        if: ${{ inputs.create_release }}
        run: make package
        env:
          FINALPACKAGE: 1
          SIDELOADED: 1
          IPA: ${{ github.workspace }}/App.ipa
          APP_VERSION: ${{ steps.download_ipa.outputs.version }}

      - name: Upload artifacts
        uses: actions/upload-artifact@v4
        with:
          name: ${{ steps.package_info.outputs.id }}_${{ steps.package_info.outputs.version }}
          path: packages/*

      - name: Create release
        if: ${{ inputs.create_release }}
        uses: softprops/action-gh-release@v2
        with:
          draft: true
          files: packages/*
          tag_name: v${{ steps.download_ipa.outputs.version }}-${{ steps.package_info.outputs.version }}
level3tjg commented 1 month ago

Thank you for implementing this into the github action, however im now getting this error:

The link that you used redirects to a 404 page. I added a command to the download step that verifies the downloaded file is an ipa file