nodeshiftmusicburmalda/.github/workflows/main.yml
Workflow config file is invalid. Please check your config file: yaml: line 41: could not find expected ':'
2026-05-08 03:18:49 +05:00

108 lines
4.4 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: NodeShiftMusic iOS Build
on:
push:
branches: [main, master]
workflow_dispatch:
jobs:
build-ipa:
name: Build Unsigned IPA
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node 20
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: |
npm cache clean --force
npm install --legacy-peer-deps
- name: Patch react-native-track-player
run: node scripts/patch-track-player.js
- name: Verify patch
run: |
FILE="node_modules/react-native-track-player/lib/src/trackPlayer.js"
if [ -f "$FILE" ]; then
echo "PATCH OK — trackPlayer.js exists ($(wc -c < $FILE) bytes)"
head -3 "$FILE"
else
echo "PATCH FAILED — creating file directly now"
mkdir -p "$(dirname $FILE)"
cat > "$FILE" << 'SHIMEOF'
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const { NativeModules } = require("react-native");
const NTP = NativeModules.TrackPlayer || {};
const T = { setupPlayer:(o)=>NTP.setupPlayer?.(o)??Promise.resolve(), add:(t,b)=>NTP.add?.(t,b)??Promise.resolve(), play:()=>NTP.play?.()??Promise.resolve(), pause:()=>NTP.pause?.()??Promise.resolve(), stop:()=>NTP.stop?.()??Promise.resolve(), reset:()=>NTP.reset?.()??Promise.resolve(), seekTo:(s)=>NTP.seekTo?.(s)??Promise.resolve(), skipToNext:()=>NTP.skipToNext?.()??Promise.resolve(), skipToPrevious:()=>NTP.skipToPrevious?.()??Promise.resolve(), getPlaybackState:()=>NTP.getState?.()??Promise.resolve({state:0}), updateOptions:(o)=>NTP.updateOptions?.(o)??Promise.resolve(), getQueue:()=>NTP.getQueue?.()??Promise.resolve([]), getCurrentTrack:()=>NTP.getCurrentTrack?.()??Promise.resolve(null), getProgress:()=>NTP.getProgress?.()??Promise.resolve({position:0,duration:0,buffered:0}), setVolume:(v)=>NTP.setVolume?.(v)??Promise.resolve(), getVolume:()=>NTP.getVolume?.()??Promise.resolve(1), setRate:(r)=>NTP.setRate?.(r)??Promise.resolve(), getRate:()=>NTP.getRate?.()??Promise.resolve(1), updateNowPlayingMetadata:(m)=>NTP.updateNowPlayingMetadata?.(m)??Promise.resolve() };
exports.default = T;
module.exports = Object.assign(exports, T);
SHIMEOF
echo "Created fallback trackPlayer.js"
fi
- name: Expo prebuild
env:
EXPO_NO_DOTENV: 1
run: npx expo prebuild --platform ios --clean
- name: Install Pods
working-directory: ios
run: pod install --repo-update
- name: Find workspace & scheme
id: xcode
run: |
WS=$(find ios -name "*.xcworkspace" -maxdepth 2 | head -1)
SCHEME=$(basename "$WS" .xcworkspace)
echo "workspace=$WS" >> $GITHUB_OUTPUT
echo "scheme=$SCHEME" >> $GITHUB_OUTPUT
echo "Workspace: $WS | Scheme: $SCHEME"
- name: Build unsigned archive
run: |
xcodebuild archive \
-workspace "${{ steps.xcode.outputs.workspace }}" \
-scheme "${{ steps.xcode.outputs.scheme }}" \
-configuration Release \
-sdk iphoneos \
-archivePath "$RUNNER_TEMP/NodeShiftMusic.xcarchive" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_ALLOWED=NO \
ENABLE_BITCODE=NO \
2>&1 | xcpretty || true
- name: Package IPA
run: |
APPS="$RUNNER_TEMP/NodeShiftMusic.xcarchive/Products/Applications"
mkdir -p Payload
cp -r "$APPS/"*.app Payload/
zip -qr NodeShiftMusic-unsigned.ipa Payload
rm -rf Payload
echo "IPA size: $(du -sh NodeShiftMusic-unsigned.ipa | cut -f1)"
- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: NodeShiftMusic-unsigned
path: NodeShiftMusic-unsigned.ipa
retention-days: 90
- name: Summary
run: |
echo "## NodeShiftMusic Build" >> $GITHUB_STEP_SUMMARY
echo "Branch: \`${{ github.ref_name }}\`" >> $GITHUB_STEP_SUMMARY
echo "Commit: \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
if [ -f NodeShiftMusic-unsigned.ipa ]; then
echo "IPA: $(du -sh NodeShiftMusic-unsigned.ipa | cut -f1)" >> $GITHUB_STEP_SUMMARY
echo "Скачай из раздела Artifacts этого run'а" >> $GITHUB_STEP_SUMMARY
fi