nodeshiftmusicburmalda/.github/workflows/main.yml

94 lines
2.8 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 --ignore-scripts
npm uninstall expo-updates --legacy-peer-deps
- name: Prepare app.json
run: |
cat << 'EOF' > app.json
{
"expo": {
"name": "BurmaldaMusic",
"slug": "nodeshiftmusicburmalda",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.nodeshift.burmaldamusic",
"supportsTablet": true
},
"plugins": ["react-native-track-player"]
}
}
EOF
- name: Expo prebuild
run: npx expo prebuild --platform ios --clean --no-install
- name: Manual JS Bundle (Anti-Failure)
run: |
mkdir -p ios/BurmaldaMusic
npx react-native bundle \
--entry-file index.js \
--platform ios \
--dev false \
--bundle-output ios/BurmaldaMusic/main.jsbundle \
--assets-dest ios/BurmaldaMusic
# Это создаст бандл заранее, чтобы Xcode не упал на его генерации
- name: Install CocoaPods
run: cd ios && pod install --repo-update && cd ..
- name: Build unsigned app
run: |
WORKSPACE_PATH=$(find ios -maxdepth 1 -name "*.xcworkspace" | head -1)
SCHEME_NAME=$(basename "$WORKSPACE_PATH" .xcworkspace)
# Прописываем пути к ноде для Xcode
export NODE_BINARY=$(which node)
xcodebuild build \
-workspace "$WORKSPACE_PATH" \
-scheme "$SCHEME_NAME" \
-configuration Release \
-sdk iphoneos \
-derivedDataPath "$RUNNER_TEMP/DerivedData" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGN_IDENTITY="" \
ENABLE_BITCODE=NO \
SKIP_BUNDLING=YES \
| xcpretty
# SKIP_BUNDLING=YES говорит Xcode использовать наш готовый бандл
- name: Package IPA
run: |
APP_PATH=$(find "$RUNNER_TEMP/DerivedData" -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_final.ipa Payload
- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: Burmalda-IPA
path: burmalda_final.ipa