mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-05-17 15:32:01 +00:00
99 lines
3 KiB
YAML
99 lines
3 KiB
YAML
name: Build check
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, ready_for_review]
|
|
|
|
# Cancel superseded runs on the same PR.
|
|
concurrency:
|
|
group: build-check-${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
android:
|
|
name: Android (compile)
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 45
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
fetch-depth: 1
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: 17
|
|
|
|
- name: Set up Gradle
|
|
uses: gradle/actions/setup-gradle@v4
|
|
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
|
|
- name: Compile Android (full + playstore, debug)
|
|
run: ./gradlew :composeApp:assembleFullDebug :composeApp:assemblePlaystoreDebug --stacktrace
|
|
|
|
ios:
|
|
name: iOS (compile)
|
|
runs-on: macos-15
|
|
timeout-minutes: 60
|
|
env:
|
|
NUVIO_IOS_DISTRIBUTION: full
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
fetch-depth: 1
|
|
|
|
- name: Set up JDK 17
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: temurin
|
|
java-version: 17
|
|
|
|
- name: Set up Gradle
|
|
uses: gradle/actions/setup-gradle@v4
|
|
|
|
- name: Select latest stable Xcode
|
|
uses: maxim-lobanov/setup-xcode@v1
|
|
with:
|
|
xcode-version: latest-stable
|
|
|
|
- name: Make gradlew executable
|
|
run: chmod +x ./gradlew
|
|
|
|
# Both iOS distributions (appstore / full) swap source dirs and deps,
|
|
# so each must be type-checked independently.
|
|
- name: Compile shared Kotlin/Native (appstore distribution)
|
|
run: ./gradlew :composeApp:compileKotlinIosArm64 :composeApp:compileKotlinIosSimulatorArm64 -Pnuvio.ios.distribution=appstore --stacktrace
|
|
|
|
- name: Compile shared Kotlin/Native (full distribution)
|
|
run: ./gradlew :composeApp:compileKotlinIosArm64 :composeApp:compileKotlinIosSimulatorArm64 -Pnuvio.ios.distribution=full --stacktrace
|
|
|
|
- name: Build iOS app (Debug, simulator destination, unsigned)
|
|
run: |
|
|
set -euo pipefail
|
|
xcodebuild \
|
|
-project iosApp/iosApp.xcodeproj \
|
|
-scheme iosApp \
|
|
-configuration Debug \
|
|
-destination 'generic/platform=iOS Simulator' \
|
|
-derivedDataPath build/ios-derived-pr \
|
|
-skipPackagePluginValidation \
|
|
-skipMacroValidation \
|
|
CODE_SIGNING_ALLOWED=NO \
|
|
CODE_SIGNING_REQUIRED=NO \
|
|
CODE_SIGN_IDENTITY="" \
|
|
DEVELOPMENT_TEAM="" \
|
|
build
|
|
|
|
# Desktop targets (macOS .dmg, Windows .exe, Linux) are not yet wired up in
|
|
# composeApp/build.gradle.kts. Add a `jvm("desktop")` target with the Compose
|
|
# Desktop plugin and matching `desktop` matrix jobs here once that lands.
|