mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-01-19 17:48:07 +00:00
Some checks failed
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (phone) (push) Has been cancelled
🤖 Android APK Build (Phone + TV) / 🏗️ Build Android APK (tv) (push) Has been cancelled
🤖 iOS IPA Build (Phone + TV) / 🏗️ Build iOS IPA (phone) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
Improves build performance by enabling caching in the EAS CLI setup step. Reduces build times and resource usage by leveraging cached dependencies and build artifacts.
96 lines
2.7 KiB
YAML
96 lines
2.7 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]
|
|
paths-ignore:
|
|
- '*.md'
|
|
push:
|
|
branches: [develop, master]
|
|
paths-ignore:
|
|
- '*.md'
|
|
|
|
jobs:
|
|
build-ios:
|
|
if: (!contains(github.event.head_commit.message, '[skip ci]') && (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]
|
|
# 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 }}-bun-cache-${{ hashFiles('bun.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-bun-cache
|
|
|
|
- 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 }}
|
|
eas-cache: true
|
|
|
|
- name: ⚙️ Ensure iOS/tvOS SDKs installed
|
|
run: |
|
|
if [ "${{ matrix.target }}" = "tv" ]; then
|
|
xcodebuild -downloadPlatform tvOS
|
|
else
|
|
xcodebuild -downloadPlatform iOS
|
|
fi
|
|
|
|
- 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
|