Add files via upload

This commit is contained in:
paregi12 2026-06-28 01:16:02 +05:30 committed by GitHub
parent eb074f1a22
commit 2e9aca4494
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

189
.github/workflows/duild-mobile.yml vendored Normal file
View file

@ -0,0 +1,189 @@
name: Build Nuvio Mobile (iOS & Android)
on:
push:
branches:
- 'kmp'
- '*'
workflow_dispatch:
jobs:
build-ios-full:
name: Build iOS Full Version
runs-on: macos-latest
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx11264M -Dkotlin.daemon.jvmargs=-Xmx11264M -Dkotlin.native.jvmargs=-Xmx11264M"
steps:
- name: Checkout Repository & Submodules
uses: actions/checkout@v4
- name: Fetch iOS Specific Submodule
run: |
set -euo pipefail
git submodule sync -- MPVKit
git submodule update --init --depth 1 -- MPVKit
- name: Pull Git LFS files
run: |
set -euo pipefail
git lfs install --local
git lfs pull
cd MPVKit
git lfs install --local
git lfs pull
- name: Select Latest Stable Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Generate local.properties
env:
SUPABASE_URL_VAR: ${{ secrets.SUPABASE_URL || 'https://dpyhjjcoabcglfmgecug.supabase.co' }}
SUPABASE_ANON_KEY_VAR: ${{ secrets.SUPABASE_ANON_KEY || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImRweWhqamNvYWJjZ2xmbWdlY3VnIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzA3OTAwMDAwfQ.dummy' }}
TRAKT_CLIENT_ID_VAR: ${{ secrets.TRAKT_CLIENT_ID || 'dummy-key' }}
TRAKT_CLIENT_SECRET_VAR: ${{ secrets.TRAKT_CLIENT_SECRET || 'dummy-key' }}
TRAKT_REDIRECT_URI_VAR: ${{ secrets.TRAKT_REDIRECT_URI || 'nuvio://auth/trakt' }}
PREMIUMIZE_CLIENT_ID_VAR: ${{ secrets.PREMIUMIZE_CLIENT_ID || 'dummy-key' }}
PREMIUMIZE_CLIENT_SECRET_VAR: ${{ secrets.PREMIUMIZE_CLIENT_SECRET || 'dummy-key' }}
PREMIUMIZE_REDIRECT_URI_VAR: ${{ secrets.PREMIUMIZE_REDIRECT_URI || 'nuvio://auth/trakt' }}
TMDB_API_KEY_VAR: ${{ secrets.TMDB_API_KEY || 'dummy-key' }}
INTRODB_API_URL_VAR: ${{ secrets.INTRODB_API_URL || 'https://api.introdb.app' }}
CONTRIBUTIONS_URL_VAR: ${{ secrets.CONTRIBUTIONS_URL || '' }}
DONATIONS_BASE_URL_VAR: ${{ secrets.DONATIONS_BASE_URL || '' }}
DONATIONS_DONATE_URL_VAR: ${{ secrets.DONATIONS_DONATE_URL || '' }}
DIRECT_DEBRID_API_BASE_URL_VAR: ${{ secrets.DIRECT_DEBRID_API_BASE_URL || '' }}
run: |
cat << EOF > local.properties
SUPABASE_URL=${SUPABASE_URL_VAR}
SUPABASE_ANON_KEY=${SUPABASE_ANON_KEY_VAR}
TRAKT_CLIENT_ID=${TRAKT_CLIENT_ID_VAR}
TRAKT_CLIENT_SECRET=${TRAKT_CLIENT_SECRET_VAR}
TRAKT_REDIRECT_URI=${TRAKT_REDIRECT_URI_VAR}
PREMIUMIZE_CLIENT_ID=${PREMIUMIZE_CLIENT_ID_VAR}
PREMIUMIZE_CLIENT_SECRET=${PREMIUMIZE_CLIENT_SECRET_VAR}
PREMIUMIZE_REDIRECT_URI=${PREMIUMIZE_REDIRECT_URI_VAR}
TMDB_API_KEY=${TMDB_API_KEY_VAR}
INTRODB_API_URL=${INTRODB_API_URL_VAR}
CONTRIBUTIONS_URL=${CONTRIBUTIONS_URL_VAR}
DONATIONS_BASE_URL=${DONATIONS_BASE_URL_VAR}
DONATIONS_DONATE_URL=${DONATIONS_DONATE_URL_VAR}
DIRECT_DEBRID_API_BASE_URL=${DIRECT_DEBRID_API_BASE_URL_VAR}
NUVIO_IOS_DISTRIBUTION=full
EOF
- name: Build iOS App via Xcode
run: |
rm -rf ~/Library/Caches/org.swift.swiftpm/
rm -rf ~/Library/Developer/Xcode/DerivedData/
cd iosApp
rm -rf build
xcodebuild -resolvePackageDependencies -project iosApp.xcodeproj -scheme iosApp -derivedDataPath build
xcodebuild \
-project iosApp.xcodeproj \
-scheme iosApp \
-configuration Release \
-sdk iphoneos \
-destination "generic/platform=iOS" \
-derivedDataPath build \
CODE_SIGNING_ALLOWED=NO \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGN_IDENTITY="" \
build
- name: Package App into .ipa
run: |
cd iosApp/build/Build/Products/Release-iphoneos
APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" Nuvio.app/Info.plist)
mkdir -p Payload
mv Nuvio.app Payload/
zip -q -r "Nuvio-v${APP_VERSION}-Full.ipa" Payload
echo "IPA_FILENAME=Nuvio-v${APP_VERSION}-Full.ipa" >> $GITHUB_ENV
- name: Upload iOS Artifact
uses: actions/upload-artifact@v4
with:
name: Nuvio-iOS-Full
path: iosApp/build/Build/Products/Release-iphoneos/${{ env.IPA_FILENAME }}
build-android:
name: Build Android Full Version
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Generate local.properties
env:
SUPABASE_URL_VAR: ${{ secrets.SUPABASE_URL || 'https://dpyhjjcoabcglfmgecug.supabase.co' }}
SUPABASE_ANON_KEY_VAR: ${{ secrets.SUPABASE_ANON_KEY || 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImRweWhqamNvYWJjZ2xmbWdlY3VnIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzA3OTAwMDAwfQ.dummy' }}
TRAKT_CLIENT_ID_VAR: ${{ secrets.TRAKT_CLIENT_ID || 'dummy-key' }}
TRAKT_CLIENT_SECRET_VAR: ${{ secrets.TRAKT_CLIENT_SECRET || 'dummy-key' }}
TRAKT_REDIRECT_URI_VAR: ${{ secrets.TRAKT_REDIRECT_URI || 'nuvio://auth/trakt' }}
PREMIUMIZE_CLIENT_ID_VAR: ${{ secrets.PREMIUMIZE_CLIENT_ID || 'dummy-key' }}
PREMIUMIZE_CLIENT_SECRET_VAR: ${{ secrets.PREMIUMIZE_CLIENT_SECRET || 'dummy-key' }}
PREMIUMIZE_REDIRECT_URI_VAR: ${{ secrets.PREMIUMIZE_REDIRECT_URI || 'nuvio://auth/trakt' }}
TMDB_API_KEY_VAR: ${{ secrets.TMDB_API_KEY || 'dummy-key' }}
INTRODB_API_URL_VAR: ${{ secrets.INTRODB_API_URL || 'https://api.introdb.app' }}
CONTRIBUTIONS_URL_VAR: ${{ secrets.CONTRIBUTIONS_URL || '' }}
DONATIONS_BASE_URL_VAR: ${{ secrets.DONATIONS_BASE_URL || '' }}
DONATIONS_DONATE_URL_VAR: ${{ secrets.DONATIONS_DONATE_URL || '' }}
DIRECT_DEBRID_API_BASE_URL_VAR: ${{ secrets.DIRECT_DEBRID_API_BASE_URL || '' }}
run: |
cat << EOF > local.properties
SUPABASE_URL=${SUPABASE_URL_VAR}
SUPABASE_ANON_KEY=${SUPABASE_ANON_KEY_VAR}
TRAKT_CLIENT_ID=${TRAKT_CLIENT_ID_VAR}
TRAKT_CLIENT_SECRET=${TRAKT_CLIENT_SECRET_VAR}
TRAKT_REDIRECT_URI=${TRAKT_REDIRECT_URI_VAR}
PREMIUMIZE_CLIENT_ID=${PREMIUMIZE_CLIENT_ID_VAR}
PREMIUMIZE_CLIENT_SECRET=${PREMIUMIZE_CLIENT_SECRET_VAR}
PREMIUMIZE_REDIRECT_URI=${PREMIUMIZE_REDIRECT_URI_VAR}
TMDB_API_KEY=${TMDB_API_KEY_VAR}
INTRODB_API_URL=${INTRODB_API_URL_VAR}
CONTRIBUTIONS_URL=${CONTRIBUTIONS_URL_VAR}
DONATIONS_BASE_URL=${DONATIONS_BASE_URL_VAR}
DONATIONS_DONATE_URL=${DONATIONS_DONATE_URL_VAR}
DIRECT_DEBRID_API_BASE_URL=${DIRECT_DEBRID_API_BASE_URL_VAR}
NUVIO_ANDROID_DISTRIBUTION=full
EOF
- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Build Full APK
run: |
./gradlew \
:androidApp:assembleFullDebug \
-Pnuvio.android.distribution=full \
-Pnuvio.splitAbi=true \
--stacktrace
- name: Upload Android Artifact
uses: actions/upload-artifact@v4
with:
name: Nuvio-Android-Full
path: androidApp/build/outputs/apk/full/debug/*.apk