nodeshiftmusicburmalda/.github/workflows/main.yml
2026-04-28 22:28:37 +05:00

77 lines
2.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Build iOS IPA
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 18
uses: actions/setup-node@v4
with:
node-version: '18' # Node 18 менее капризна к импортам
- name: Install dependencies
run: |
rm -rf node_modules
npm install --legacy-peer-deps
npm install react-native-svg --legacy-peer-deps
- name: Patch Broken Library (The Fix)
run: |
# Этот шаг исправляет ошибку импорта в самом плеере
# Мы просто добавляем .js там, где его забыли разработчики библиотеки
FILE="node_modules/react-native-track-player/lib/src/index.js"
if [ -f "$FILE" ]; then
sed -i '' "s/from '.\/trackPlayer'/from '.\/trackPlayer.js'/g" "$FILE"
echo "Patch applied to $FILE"
fi
- name: Fix Git state
run: |
git config --global user.email "bot@example.com"
git config --global user.name "Builder Bot"
git add .
git commit -m "ci: fix dirty tree and patches" || true
- name: Expo prebuild
run: npx expo prebuild --platform ios --clean --no-install
env:
EXPO_NO_DOTENV: 1
- name: Build unsigned app
run: |
WORKSPACE=$(find ios -name "*.xcworkspace" -type d | head -1)
SCHEME=$(basename "$WORKSPACE" .xcworkspace)
xcodebuild build \
-workspace "$WORKSPACE" \
-scheme "$SCHEME" \
-configuration Release \
-sdk iphoneos \
-derivedDataPath "$RUNNER_TEMP/DerivedData" \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO
- name: Package IPA
run: |
APP_PATH=$(find "$RUNNER_TEMP/DerivedData/Build/Products" -name "*.app" -type d | grep -v "\.xctest" | head -1)
if [ -z "$APP_PATH" ]; then echo "ERROR: .app not found"; exit 1; fi
mkdir -p Payload
cp -r "$APP_PATH" Payload/
zip -qr burmalda-unsigned.ipa Payload
rm -rf Payload
- name: Upload IPA artifact
uses: actions/upload-artifact@v4
with:
name: burmalda-unsigned-ipa
path: burmalda-unsigned.ipa
retention-days: 30