Files
App/.github/workflows/build-ios.yml
2025-11-11 09:28:12 -06:00

68 lines
2.1 KiB
YAML

name: Build iOS IPA
on:
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/build-ios.yml'
- 'ios/**'
- 'package.json'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build-ios:
if: github.repository == 'Jellify-Music/App'
runs-on: macos-15
steps:
- name: 🛒 Checkout
uses: actions/checkout@v4
- name: 🖥 Setup Node 20
uses: actions/setup-node@v4
with:
node-version: 20
- name: 💬 Echo package.json version to Github ENV
run: echo VERSION_NUMBER=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV
- name: 🍎 Setup Xcode
uses: ./.github/actions/setup-xcode
- name: 🍎 Run yarn init-ios:new-arch
run: yarn init-android && cd ios && bundle install && bundle exec pod install
- name: 🚀 Run fastlane build
run: |
cd ios
set -o pipefail
xcodebuild \
CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ \
-derivedDataPath build -UseModernBuildSystem=YES \
-workspace Jellify.xcworkspace \
-scheme Jellify \
-sdk iphonesimulator \
-configuration Release \
-destination 'generic/platform=iOS Simulator' \
build \
CODE_SIGNING_ALLOWED=NO
- name: Package .app for Simulator
run: |
cd ios/build/Build/Products/Release-iphonesimulator
zip -r Jellify-Release-Simulator.zip Jellify.app
- name: 📦 Upload IPA for testing
uses: actions/upload-artifact@v4
if: always()
with:
name: jellify-ios-pr-${{ github.event.number }}-${{ env.VERSION_NUMBER }}
path: |
ios/build/*.ipa
ios/*.ipa
Jellify.app
*.zip
ios/build/Build/Products/Release-iphonesimulator/Jellify-Release-Simulator.zip
retention-days: 7
if-no-files-found: warn