spotube/.github/workflows/ios-cloud-verify.yml
sibylla canton 00e0f22567 ci(ios): install CocoaPods before build
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-11-03 16:40:14 +01:00

89 lines
2.3 KiB
YAML

name: iOS cloud verification
on:
workflow_dispatch:
inputs:
ref:
description: Branch or commit to verify
required: true
default: ios-background-playback
jobs:
build-ios:
runs-on: macos-latest
timeout-minutes: 120
steps:
- name: Checkout Spotube
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
- name: Checkout ComposeNativeWebview
uses: actions/checkout@v4
with:
repository: KRTirtho/ComposeNativeWebview
ref: cbd36f88927298a28a2d64c6acf7ec3b2def6f9d
path: compose-webview
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up Ruby and CocoaPods
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: false
- name: Install CocoaPods
run: gem install cocoapods
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
- name: Publish ComposeNativeWebview
working-directory: compose-webview
run: |
chmod +x gradlew
./gradlew publishToMavenLocal
- name: Compile Kotlin/Native iOS
run: |
chmod +x gradlew
./gradlew :composeApp:compileKotlinIosSimulatorArm64
- name: Install CocoaPods dependencies
run: |
cd iosApp
pod install --repo-update
- name: Build unsigned iOS app
run: |
xcodebuild \
-workspace iosApp/iosApp.xcworkspace \
-scheme iosApp \
-configuration Release \
-sdk iphoneos \
-destination 'generic/platform=iOS' \
-derivedDataPath build/ios \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGN_IDENTITY="" \
DEVELOPMENT_TEAM="" \
build
- name: Package unsigned IPA
run: |
app=$(find build/ios/Build/Products/Release-iphoneos -maxdepth 1 -name '*.app' -type d | head -1)
mkdir Payload
cp -R "$app" Payload/
zip -qry Spotube-ios-unsigned.ipa Payload
- name: Upload IPA
uses: actions/upload-artifact@v4
with:
name: spotube-ios-unsigned
path: Spotube-ios-unsigned.ipa