From 8ffa952ff9fd93f95dc320c107fee5e26fa179f9 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:36:14 -0800 Subject: [PATCH 1/9] start on nightly builds Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8c7c73a1..f425d75d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,23 @@ jobs: with: submodules: recursive + - name: Test nightly + run: touch test.ipa + + - name: Upload to nightly release + uses: IsaacShelton/update-existing-release@v1.3.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + release: "Nightly" + tag: "nightly" + prerelease: true + files: test.ipa + message: "Nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" + body: "" + + - name: Trigger error + run: exit 1 + # - name: Cache rust cargo # id: cache-rust-cargo # uses: actions/cache@v3 @@ -113,3 +130,14 @@ jobs: with: name: SideStore.ipa path: SideStore.ipa + + - name: Upload to nightly release + uses: IsaacShelton/update-existing-release@v1.3.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + release: "Nightly" + tag: "nightly" + prerelease: true + files: SideStore.ipa + message: "Nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" + body: "" From 1ca67d0241f634bf3db37f80f8ebbe2042b592ef Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:40:40 -0800 Subject: [PATCH 2/9] Update build.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f425d75d..6d4a16c5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,8 +34,7 @@ jobs: tag: "nightly" prerelease: true files: test.ipa - message: "Nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" - body: "" + body: "Nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" - name: Trigger error run: exit 1 From e367fd2b736799698af417e68ab870c6916e9c36 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:51:35 -0800 Subject: [PATCH 3/9] Update build.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6d4a16c5..f243105d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,27 +18,34 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Checkout code - uses: actions/checkout@v2 - with: - submodules: recursive - - name: Test nightly - run: touch test.ipa + run: echo "test" > test.ipa - name: Upload to nightly release uses: IsaacShelton/update-existing-release@v1.3.1 with: token: ${{ secrets.GITHUB_TOKEN }} - release: "Nightly" + release: "Nightly build for ${{ github.sha }}" tag: "nightly" prerelease: true files: test.ipa - body: "Nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" + body: > + This is an __⚠️ **EXPERIMENTAL** ⚠️__ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). + + Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. + + If you use the SideStore (Nightly) app, it will use the latest nightly build. + + Built at: $(date -u +'%c') (UTC) - name: Trigger error run: exit 1 + - name: Checkout code + uses: actions/checkout@v2 + with: + submodules: recursive + # - name: Cache rust cargo # id: cache-rust-cargo # uses: actions/cache@v3 From a31fd6709aeaf8f0085d03b790df07a1a151b023 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:53:29 -0800 Subject: [PATCH 4/9] Update build.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f243105d..9fdd77c6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,11 +25,11 @@ jobs: uses: IsaacShelton/update-existing-release@v1.3.1 with: token: ${{ secrets.GITHUB_TOKEN }} - release: "Nightly build for ${{ github.sha }}" + release: "Nightly" tag: "nightly" prerelease: true files: test.ipa - body: > + body: | This is an __⚠️ **EXPERIMENTAL** ⚠️__ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. From c212c0a6b28c15283077ac1590653f03ed82f7ae Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 20:56:44 -0800 Subject: [PATCH 5/9] Update build.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9fdd77c6..e60aab94 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,6 +21,10 @@ jobs: - name: Test nightly run: echo "test" > test.ipa + - name: Get current date + id: date + run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT + - name: Upload to nightly release uses: IsaacShelton/update-existing-release@v1.3.1 with: @@ -34,9 +38,9 @@ jobs: Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. - If you use the SideStore (Nightly) app, it will use the latest nightly build. + If you use the SideStore (Nightly) app, it will use the latest nightly build (make sure to update it in "My Apps"). - Built at: $(date -u +'%c') (UTC) + Built at: ${{ steps.date.outputs.date }} (UTC) - name: Trigger error run: exit 1 From 55fcea04af3738802e5d3b536b6f07b797348327 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 21:03:54 -0800 Subject: [PATCH 6/9] Update build.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e60aab94..7eead9bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,6 +25,10 @@ jobs: id: date run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT + - name: Get current date in AltStore date form + id: date_altstore + run: echo "date=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT + - name: Upload to nightly release uses: IsaacShelton/update-existing-release@v1.3.1 with: @@ -34,13 +38,15 @@ jobs: prerelease: true files: test.ipa body: | - This is an __⚠️ **EXPERIMENTAL** ⚠️__ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). + This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. If you use the SideStore (Nightly) app, it will use the latest nightly build (make sure to update it in "My Apps"). - Built at: ${{ steps.date.outputs.date }} (UTC) + Built at: `${{ steps.date.outputs.date }}` (UTC) + Built at (UTC date): `${{ steps.date.outputs.date_altstore }}` + Commit SHA: `${{ github.sha }}` - name: Trigger error run: exit 1 From c7254fd23e588171cca3b5b469720ec17a4e6762 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 21:04:33 -0800 Subject: [PATCH 7/9] Update build.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7eead9bb..35a6257d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -45,7 +45,7 @@ jobs: If you use the SideStore (Nightly) app, it will use the latest nightly build (make sure to update it in "My Apps"). Built at: `${{ steps.date.outputs.date }}` (UTC) - Built at (UTC date): `${{ steps.date.outputs.date_altstore }}` + Built at (UTC date): `${{ steps.date_altstore.outputs.date }}` Commit SHA: `${{ github.sha }}` - name: Trigger error From 5ede9f7c6b0cb781ac94c5cfbae47ac2aa009583 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 1 Jan 2023 21:08:32 -0800 Subject: [PATCH 8/9] Remove testing logic, final changes Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/build.yml | 53 +++++++++++++------------------------ 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 35a6257d..397ad26e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,39 +18,6 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Test nightly - run: echo "test" > test.ipa - - - name: Get current date - id: date - run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT - - - name: Get current date in AltStore date form - id: date_altstore - run: echo "date=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT - - - name: Upload to nightly release - uses: IsaacShelton/update-existing-release@v1.3.1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - release: "Nightly" - tag: "nightly" - prerelease: true - files: test.ipa - body: | - This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). - - Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. - - If you use the SideStore (Nightly) app, it will use the latest nightly build (make sure to update it in "My Apps"). - - Built at: `${{ steps.date.outputs.date }}` (UTC) - Built at (UTC date): `${{ steps.date_altstore.outputs.date }}` - Commit SHA: `${{ github.sha }}` - - - name: Trigger error - run: exit 1 - - name: Checkout code uses: actions/checkout@v2 with: @@ -147,6 +114,14 @@ jobs: name: SideStore.ipa path: SideStore.ipa + - name: Get current date + id: date + run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT + + - name: Get current date in AltStore date form + id: date_altstore + run: echo "date=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT + - name: Upload to nightly release uses: IsaacShelton/update-existing-release@v1.3.1 with: @@ -155,5 +130,13 @@ jobs: tag: "nightly" prerelease: true files: SideStore.ipa - message: "Nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }})" - body: "" + body: | + This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). + + Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. + + If you use the `SideStore (Nightly)` app, it will use the latest nightly build (make sure to update it in "My Apps"). + + Built at (UTC): `${{ steps.date.outputs.date }}` + Built at (UTC date): `${{ steps.date_altstore.outputs.date }}` + Commit SHA: `${{ github.sha }}` From b0fac34ffc5ec57f99b3157e301ebe961c6bb759 Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Mon, 2 Jan 2023 22:28:28 -0800 Subject: [PATCH 9/9] Nightly release build (#2) * Update and rename build.yml to nightly.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Create stable.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update stable.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * trigger on tag Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update stable.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update nightly.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update stable.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * add version and build number Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * test Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Revert "test" This reverts commit 9dff8d1d878a764a432ef4560300acdb4407313a. * Remove pr from stable Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * add pr.yml * Add nightly suffix and build number Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update nightly.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update stable.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update nightly.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Update nightly.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * add beta * Update nightly.yml Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * [beta] test Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> * Remove test Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Signed-off-by: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> --- .github/workflows/beta.yml | 156 ++++++++++++++++++++ .github/workflows/nightly.yml | 155 +++++++++++++++++++ .github/workflows/pr.yml | 111 ++++++++++++++ .github/workflows/{build.yml => stable.yml} | 29 ++-- 4 files changed, 438 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/beta.yml create mode 100644 .github/workflows/nightly.yml create mode 100644 .github/workflows/pr.yml rename .github/workflows/{build.yml => stable.yml} (84%) diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml new file mode 100644 index 00000000..08d47507 --- /dev/null +++ b/.github/workflows/beta.yml @@ -0,0 +1,156 @@ +name: Beta SideStore build +on: + push: + branches: + - develop + +jobs: + build: + name: Build and upload SideStore Beta + if: startsWith(github.event.head_commit.message, '[beta]') + concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + strategy: + fail-fast: false + matrix: + include: + - os: 'macos-12' + version: '14.2' + + runs-on: ${{ matrix.os }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + submodules: recursive + + # - name: Cache rust cargo + # id: cache-rust-cargo + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-cargo + # with: + # path: ~/.cargo + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + # - name: Cache rust minimuxer + # id: cache-rust-minimuxer + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-minimuxer + # with: + # path: ./Dependencies/minimuxer/target + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + # - name: Cache rust em_proxy + # id: cache-rust-em_proxy + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-em_proxy + # with: + # path: ./Dependencies/em_proxy/target + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + - name: Install dependencies + run: brew install ldid + + - name: Install rustup + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + target: aarch64-apple-ios + + # - name: Create emotional damage + # run: cd Dependencies/em_proxy && cargo build --release --target aarch64-apple-ios + + # - name: Build minimuxer + # run: cd Dependencies/minimuxer && cargo build --release --target aarch64-apple-ios + + - name: Add beta suffix to version + run: sed -e '/MARKETING_VERSION = .*/s/$/-beta.${{ github.run_number }}/' -i '' Build.xcconfig + + - name: Setup Xcode + uses: maxim-lobanov/setup-xcode@v1.4.1 + with: + xcode-version: ${{ matrix.version }} + + - name: Build SideStore + run: | + xcodebuild -project AltStore.xcodeproj \ + -scheme AltStore \ + -sdk iphoneos \ + archive -archivePath ./archive \ + CODE_SIGNING_REQUIRED=NO \ + AD_HOC_CODE_SIGNING_ALLOWED=YES \ + CODE_SIGNING_ALLOWED=NO \ + DEVELOPMENT_TEAM=XYZ0123456 \ + ORG_IDENTIFIER=com.SideStore \ + | xcpretty && exit ${PIPESTATUS[0]} + + - name: Fakesign app + run: | + rm -rf archive.xcarchive/Products/Applications/SideStore.app/Frameworks/AltStoreCore.framework/Frameworks/ + ldid -SAltStore/Resources/tempEnt.plist archive.xcarchive/Products/Applications/SideStore.app/SideStore + + - name: Convert to IPA + run: | + mkdir Payload + mkdir Payload/SideStore.app + cp -R archive.xcarchive/Products/Applications/SideStore.app/ Payload/SideStore.app/ + zip -r SideStore.ipa Payload + + - name: Upload Artifact + uses: actions/upload-artifact@v3.1.0 + with: + name: SideStore.ipa + path: SideStore.ipa + + - name: Get version + id: version + run: echo "version=$(grep MARKETING_VERSION Build.xcconfig | sed -e "s/MARKETING_VERSION = //g")" >> $GITHUB_OUTPUT + + - name: Get current date + id: date + run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT + + - name: Get current date in AltStore date form + id: date_altstore + run: echo "date=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT + + - name: Upload to beta release + uses: IsaacShelton/update-existing-release@v1.3.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + release: "Beta" + tag: "beta" + prerelease: true + files: SideStore.ipa + body: | + This is an ⚠️ **EXPERIMENTAL** ⚠️ beta build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). + + Beta builds are hand-picked builds from development commits that will allow you to try out new features earlier than normal, but with a lower chance of bugs than if you used nightly builds. However, since these changes are newer and less tested, they still have a good chance of bugs, so **use at your own risk**. + + If you want to be on the bleeding edge and use the latest development builds, you can look at [SideStore Nightly](https://github.com/${{ github.repository }}/releases/tag/nightly). **Please be aware that these builds have a much higher chance of bugs than beta or stable**. + + If you use the `SideStore (Beta)` app, it will use the latest beta build (make sure to update it in "My Apps"). + + ## Build Info + + Built at (UTC): `${{ steps.date.outputs.date }}` + Built at (UTC date): `${{ steps.date_altstore.outputs.date }}` + Commit SHA: `${{ github.sha }}` + Version: `${{ steps.version.outputs.version }}` diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 00000000..2f8d62ba --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,155 @@ +name: Nightly SideStore build +on: + push: + branches: + - develop + +jobs: + build: + name: Build and upload SideStore Nightly + concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + strategy: + fail-fast: false + matrix: + include: + - os: 'macos-12' + version: '14.2' + + runs-on: ${{ matrix.os }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + submodules: recursive + + # - name: Cache rust cargo + # id: cache-rust-cargo + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-cargo + # with: + # path: ~/.cargo + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + # - name: Cache rust minimuxer + # id: cache-rust-minimuxer + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-minimuxer + # with: + # path: ./Dependencies/minimuxer/target + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + # - name: Cache rust em_proxy + # id: cache-rust-em_proxy + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-em_proxy + # with: + # path: ./Dependencies/em_proxy/target + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + - name: Install dependencies + run: brew install ldid + + - name: Install rustup + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + target: aarch64-apple-ios + + # - name: Create emotional damage + # run: cd Dependencies/em_proxy && cargo build --release --target aarch64-apple-ios + + # - name: Build minimuxer + # run: cd Dependencies/minimuxer && cargo build --release --target aarch64-apple-ios + + - name: Add nightly suffix to version + run: sed -e '/MARKETING_VERSION = .*/s/$/-nightly.${{ github.run_number }}/' -i '' Build.xcconfig + + - name: Setup Xcode + uses: maxim-lobanov/setup-xcode@v1.4.1 + with: + xcode-version: ${{ matrix.version }} + + - name: Build SideStore + run: | + xcodebuild -project AltStore.xcodeproj \ + -scheme AltStore \ + -sdk iphoneos \ + archive -archivePath ./archive \ + CODE_SIGNING_REQUIRED=NO \ + AD_HOC_CODE_SIGNING_ALLOWED=YES \ + CODE_SIGNING_ALLOWED=NO \ + DEVELOPMENT_TEAM=XYZ0123456 \ + ORG_IDENTIFIER=com.SideStore \ + | xcpretty && exit ${PIPESTATUS[0]} + + - name: Fakesign app + run: | + rm -rf archive.xcarchive/Products/Applications/SideStore.app/Frameworks/AltStoreCore.framework/Frameworks/ + ldid -SAltStore/Resources/tempEnt.plist archive.xcarchive/Products/Applications/SideStore.app/SideStore + + - name: Convert to IPA + run: | + mkdir Payload + mkdir Payload/SideStore.app + cp -R archive.xcarchive/Products/Applications/SideStore.app/ Payload/SideStore.app/ + zip -r SideStore.ipa Payload + + - name: Upload Artifact + uses: actions/upload-artifact@v3.1.0 + with: + name: SideStore.ipa + path: SideStore.ipa + + - name: Get version + id: version + run: echo "version=$(grep MARKETING_VERSION Build.xcconfig | sed -e "s/MARKETING_VERSION = //g")" >> $GITHUB_OUTPUT + + - name: Get current date + id: date + run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT + + - name: Get current date in AltStore date form + id: date_altstore + run: echo "date=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT + + - name: Upload to nightly release + uses: IsaacShelton/update-existing-release@v1.3.1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + release: "Nightly" + tag: "nightly" + prerelease: true + files: SideStore.ipa + body: | + This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). + + Nightly builds are built from the most recent commit which means you'll be able to try out new features very early. However, since these changes are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. + + If you want to try out new features early but want a lower chance of bugs, you can look at [SideStore Beta](https://github.com/${{ github.repository }}/releases/tag/beta). + + If you use the `SideStore (Nightly)` app, it will use the latest nightly build (make sure to update it in "My Apps"). + + ## Build Info + + Built at (UTC): `${{ steps.date.outputs.date }}` + Built at (UTC date): `${{ steps.date_altstore.outputs.date }}` + Commit SHA: `${{ github.sha }}` + Version: `${{ steps.version.outputs.version }}` diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 00000000..35229496 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,111 @@ +name: Pull Request SideStore build +on: + pull_request: + +jobs: + build: + name: Build and upload SideStore + strategy: + fail-fast: false + matrix: + include: + - os: 'macos-12' + version: '14.2' + + runs-on: ${{ matrix.os }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + submodules: recursive + + # - name: Cache rust cargo + # id: cache-rust-cargo + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-cargo + # with: + # path: ~/.cargo + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + # - name: Cache rust minimuxer + # id: cache-rust-minimuxer + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-minimuxer + # with: + # path: ./Dependencies/minimuxer/target + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + # - name: Cache rust em_proxy + # id: cache-rust-em_proxy + # uses: actions/cache@v3 + # env: + # cache-name: cache-rust-em_proxy + # with: + # path: ./Dependencies/em_proxy/target + # key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + # restore-keys: | + # ${{ runner.os }}-build-${{ env.cache-name }}- + # ${{ runner.os }}-build- + # ${{ runner.os }}- + + - name: Install dependencies + run: brew install ldid + + - name: Install rustup + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + target: aarch64-apple-ios + + # - name: Create emotional damage + # run: cd Dependencies/em_proxy && cargo build --release --target aarch64-apple-ios + + # - name: Build minimuxer + # run: cd Dependencies/minimuxer && cargo build --release --target aarch64-apple-ios + + - name: Setup Xcode + uses: maxim-lobanov/setup-xcode@v1.4.1 + with: + xcode-version: ${{ matrix.version }} + + - name: Build SideStore + run: | + xcodebuild -project AltStore.xcodeproj \ + -scheme AltStore \ + -sdk iphoneos \ + archive -archivePath ./archive \ + CODE_SIGNING_REQUIRED=NO \ + AD_HOC_CODE_SIGNING_ALLOWED=YES \ + CODE_SIGNING_ALLOWED=NO \ + DEVELOPMENT_TEAM=XYZ0123456 \ + ORG_IDENTIFIER=com.SideStore \ + | xcpretty && exit ${PIPESTATUS[0]} + + - name: Fakesign app + run: | + rm -rf archive.xcarchive/Products/Applications/SideStore.app/Frameworks/AltStoreCore.framework/Frameworks/ + ldid -SAltStore/Resources/tempEnt.plist archive.xcarchive/Products/Applications/SideStore.app/SideStore + + - name: Convert to IPA + run: | + mkdir Payload + mkdir Payload/SideStore.app + cp -R archive.xcarchive/Products/Applications/SideStore.app/ Payload/SideStore.app/ + zip -r SideStore.ipa Payload + + - name: Upload Artifact + uses: actions/upload-artifact@v3.1.0 + with: + name: SideStore.ipa + path: SideStore.ipa diff --git a/.github/workflows/build.yml b/.github/workflows/stable.yml similarity index 84% rename from .github/workflows/build.yml rename to .github/workflows/stable.yml index 397ad26e..a49bfa42 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/stable.yml @@ -1,10 +1,8 @@ -name: Build and Upload SideStore +name: Stable SideStore build on: push: - branches: - - master - - develop - pull_request: + tags: + - '[0-9]+.[0-9]+.[0-9]+*' jobs: build: @@ -114,6 +112,10 @@ jobs: name: SideStore.ipa path: SideStore.ipa + - name: Get version + id: version + run: echo "version=$(grep MARKETING_VERSION Build.xcconfig | sed -e "s/MARKETING_VERSION = //g")" >> $GITHUB_OUTPUT + - name: Get current date id: date run: echo "date=$(date -u +'%c')" >> $GITHUB_OUTPUT @@ -122,21 +124,22 @@ jobs: id: date_altstore run: echo "date=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT - - name: Upload to nightly release - uses: IsaacShelton/update-existing-release@v1.3.1 + - name: Upload to new stable release + uses: softprops/action-gh-release@v1 with: token: ${{ secrets.GITHUB_TOKEN }} - release: "Nightly" - tag: "nightly" - prerelease: true + name: ${{ steps.version.outputs.version }} + tag_name: ${{ github.ref }} + draft: true files: SideStore.ipa body: | - This is an ⚠️ **EXPERIMENTAL** ⚠️ nightly build for commit [${{ github.sha }}](https://github.com/${{ github.repository }}/commit/${{ github.sha }}). + ## Changelog - Nightly builds are built from the most recent commit. However, since they are much newer and less tested, they have a much higher chance of bugs, so **use at your own risk**. + - TODO - If you use the `SideStore (Nightly)` app, it will use the latest nightly build (make sure to update it in "My Apps"). + ## Build Info Built at (UTC): `${{ steps.date.outputs.date }}` Built at (UTC date): `${{ steps.date_altstore.outputs.date }}` Commit SHA: `${{ github.sha }}` + Version: `${{ steps.version.outputs.version }}`