nodeshiftmusicburmalda/.github/workflows/main.yml
2026-04-29 00:47:28 +05:00

90 lines
3 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 20
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: |
npm install --legacy-peer-deps
npm install react-native-svg --legacy-peer-deps
- name: Fix Module Resolution (No Deletions)
run: |
# Путь к проблемной папке
TARGET_DIR="node_modules/react-native-track-player/lib/src"
if [ -d "$TARGET_DIR" ]; then
echo "Исправляем пути модулей..."
# Создаем символическую ссылку: trackPlayer -> trackPlayer.js
# Это позволит импорту 'from ./trackPlayer' работать без ошибок
cd "$TARGET_DIR"
# Если файла с .js нет, создаем его из оригинала
if [ -f "trackPlayer" ] && [ ! -f "trackPlayer.js" ]; then
cp trackPlayer trackPlayer.js
fi
# На всякий случай делаем обратную проверку
if [ -f "trackPlayer.js" ] && [ ! -f "trackPlayer" ]; then
cp trackPlayer.js trackPlayer
fi
cd -
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 module resolution" || true
- name: Expo Prebuild
# Здесь мы НЕ используем --no-install, чтобы Expo сам докачал нужные нативные зависимости
run: npx expo prebuild --platform ios --clean
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 \
AD_HOC_CODE_SIGNING_ALLOWED=YES
- 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 exit 1; fi
mkdir -p Payload
cp -r "$APP_PATH" Payload/
zip -qr burmalda-unsigned.ipa Payload
rm -rf Payload
- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: burmalda-unsigned-ipa
path: burmalda-unsigned.ipa
retention-days: 7