mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-07-17 01:43:00 +01:00
Removes CocoaPods caching step which may cause build inconsistencies and updates EAS CLI to use latest version instead of pinned version for improved tooling and bug fixes
100 lines
3.1 KiB
YAML
100 lines
3.1 KiB
YAML
name: 🤖 iOS IPA Build (Phone + TV)
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
branches: [develop, master]
|
|
push:
|
|
branches: [develop, master]
|
|
|
|
jobs:
|
|
build-ios:
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'streamyfin/streamyfin'
|
|
runs-on: macos-15
|
|
name: 🏗️ Build iOS IPA
|
|
permissions:
|
|
contents: read
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
target: [phone, tv]
|
|
|
|
steps:
|
|
- name: 📥 Checkout code
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
show-progress: false
|
|
|
|
- name: 🍞 Setup Bun
|
|
uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # v2.0.2
|
|
with:
|
|
bun-version: latest
|
|
|
|
- name: 💾 Cache Bun dependencies
|
|
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
|
|
with:
|
|
path: ~/.bun/install/cache
|
|
key: ${{ runner.os }}-${{ runner.arch }}-bun-develop-${{ hashFiles('bun.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ runner.arch }}-bun-develop
|
|
${{ runner.os }}-bun-develop
|
|
|
|
- name: 💾 Cache node_modules
|
|
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
|
|
with:
|
|
path: node_modules
|
|
key: ${{ runner.os }}-${{ runner.arch }}-modules-latest-develop-${{ hashFiles('bun.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ runner.arch }}-modules-latest-develop
|
|
${{ runner.os }}-${{ runner.arch }}-modules-develop
|
|
${{ runner.os }}-modules-develop
|
|
|
|
- name: 💾 Cache Expo CLI
|
|
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
|
|
with:
|
|
path: ~/.expo
|
|
key: ${{ runner.os }}-expo-cli-develop
|
|
restore-keys: ${{ runner.os }}-expo-cli-develop
|
|
|
|
- name: 📦 Install dependencies and reload submodules
|
|
run: |
|
|
bun install --frozen-lockfile
|
|
bun run submodule-reload
|
|
|
|
- name: 🛠️ Generate project files
|
|
run: |
|
|
if [ "${{ matrix.target }}" = "tv" ]; then
|
|
bun run prebuild:tv
|
|
else
|
|
bun run prebuild
|
|
fi
|
|
|
|
- name: 🏗️ Setup EAS
|
|
uses: expo/expo-github-action@main
|
|
with:
|
|
eas-version: latest
|
|
token: ${{ secrets.EXPO_TOKEN }}
|
|
|
|
- name: 🚀 Build iOS app
|
|
env:
|
|
EXPO_TV: ${{ matrix.target == 'tv' && 1 || 0 }}
|
|
run: eas build -p ios --local --non-interactive
|
|
|
|
- name: 📅 Set date tag
|
|
run: echo "DATE_TAG=$(date +%d-%m-%Y_%H-%M-%S)" >> $GITHUB_ENV
|
|
|
|
- name: 📤 Upload IPA artifact
|
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
with:
|
|
name: streamyfin-ios-${{ matrix.target }}-ipa-${{ env.DATE_TAG }}
|
|
path: build-*.ipa
|
|
retention-days: 7
|