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

87 lines
3.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: Hotfix Track Player (No deletions)
run: |
# 1. Решаем проблему с импортом внутри библиотеки
TARGET_DIR="node_modules/react-native-track-player/lib/src"
if [ -d "$TARGET_DIR" ]; then
# Создаем копию без расширения, чтобы Node.js нашла модуль
cp "$TARGET_DIR/trackPlayer" "$TARGET_DIR/trackPlayer.js" 2>/dev/null || true
# И наоборот, на всякий случай
cp "$TARGET_DIR/trackPlayer.js" "$TARGET_DIR/trackPlayer" 2>/dev/null || true
fi
# 2. Маскируем плагин под CommonJS (чтобы Expo не плевался)
PLUGIN_PATH="node_modules/react-native-track-player/app.plugin.js"
if [ -f "$PLUGIN_PATH" ]; then
# Переименовываем оригинал в .mjs (модуль)
mv "$PLUGIN_PATH" "node_modules/react-native-track-player/app.plugin.mjs"
# Создаем новый app.plugin.js, который просто пробрасывает вызов
echo "module.exports = require('./app.plugin.mjs');" > "$PLUGIN_PATH"
fi
# Если фокус с mjs не пройдет, просто грубо заменяем импорты на реквайры
sed -i '' "s/import/const/g" "node_modules/react-native-track-player/app.plugin.mjs" || true
sed -i '' "s/export default/module.exports =/g" "node_modules/react-native-track-player/app.plugin.mjs" || true
- 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 track player compatibility" || 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)
mkdir -p Payload
cp -r "$APP_PATH" Payload/
zip -qr burmalda-unsigned.ipa Payload
- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: burmalda-unsigned-ipa
path: burmalda-unsigned.ipa