Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 6 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,21 +58,12 @@ jobs:
include:
- id: jvm
label: JVM/Desktop
tasks: >-
:ohs-player-library:jvmTest
:ohs-player-reference-app:jvmTest
tasks: ':reference-app:jvmTest'
kotlinDaemonHeap: '-Xmx6g -XX:+UseG1GC'
extraArgs: ''
- id: android
label: Android
# ohs-player-library uses the androidKotlinMultiplatformLibrary
# plugin, which doesn't register `lintDebug` - assembleAndroidMain
# is the closest "compile + verify the Android variant" task it
# exposes. ohs-player-reference-app uses classic androidTarget
# and keeps lintDebug.
tasks: >-
:ohs-player-library:assembleAndroidMain
:ohs-player-reference-app:lintDebug
tasks: ':reference-app:lintDebug'
kotlinDaemonHeap: '-Xmx6g -XX:+UseG1GC'
extraArgs: ''
- id: js
Expand All @@ -81,19 +72,14 @@ jobs:
# it still runs the compile prerequisites (compileKotlinJs +
# compileTestDevelopmentExecutableKotlinJs) — which is the work
# we want covered.
tasks: ':ohs-player-reference-app:jsBrowserTest'
tasks: ':reference-app:jsBrowserTest'
kotlinDaemonHeap: '-Xmx10g -XX:+UseG1GC'
extraArgs: ''
- id: wasm
label: Kotlin/Wasm
tasks: >-
:ohs-player-library:wasmJsBrowserTest
:ohs-player-reference-app:wasmJsBrowserTest
tasks: ':reference-app:wasmJsBrowserTest'
kotlinDaemonHeap: '-Xmx10g -XX:+UseG1GC'
# Serialize the library + reference-app wasm compiles so they
# don't run concurrently as workers and double the daemon heap
# demand even at 10g.
extraArgs: '--max-workers=1'
extraArgs: ''
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -162,5 +148,4 @@ jobs:
- name: Compile + link ${{ matrix.label }}
run: |
./gradlew --stacktrace \
:ohs-player-library:compileKotlin${{ matrix.target }} \
:ohs-player-reference-app:linkDebugFramework${{ matrix.target }}
:reference-app:linkDebugFramework${{ matrix.target }}
30 changes: 15 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ jobs:
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
run: ./gradlew :ohs-player-reference-app:assembleRelease
run: ./gradlew :reference-app:assembleRelease

- name: Stage outputs
shell: bash
Expand All @@ -154,7 +154,7 @@ jobs:

# Fail loud if AGP ever produces 0 or >1 outputs (e.g. someone enables
# ABI/density splits) — the single-name cp below would silently corrupt.
apks=(ohs-player-reference-app/build/outputs/apk/release/*.apk)
apks=(reference-app/build/outputs/apk/release/*.apk)
if [ ${#apks[@]} -ne 1 ]; then
echo "::error::Expected exactly one APK, got ${#apks[@]}: ${apks[*]}"
echo "::error::If splits/flavors were enabled, update this step to rename each variant."
Expand All @@ -180,25 +180,25 @@ jobs:
include:
- os: ubuntu-latest
label: Linux deb
task: ':ohs-player-reference-app:packageDeb'
glob: 'ohs-player-reference-app/build/compose/binaries/main/deb/*.deb'
task: ':reference-app:packageDeb'
glob: 'reference-app/build/compose/binaries/main/deb/*.deb'
artifact: linux-deb
- os: ubuntu-latest
label: Linux rpm
task: ':ohs-player-reference-app:packageRpm'
glob: 'ohs-player-reference-app/build/compose/binaries/main/rpm/*.rpm'
task: ':reference-app:packageRpm'
glob: 'reference-app/build/compose/binaries/main/rpm/*.rpm'
artifact: linux-rpm
- os: windows-latest
label: Windows msi
task: ':ohs-player-reference-app:packageMsi'
glob: 'ohs-player-reference-app/build/compose/binaries/main/msi/*.msi'
task: ':reference-app:packageMsi'
glob: 'reference-app/build/compose/binaries/main/msi/*.msi'
artifact: windows-msi
# macos-latest is Apple Silicon — the .dmg is arm64-only. Intel Macs
# need the portable Linux tarball or a future universal build.
- os: macos-latest
label: macOS dmg
task: ':ohs-player-reference-app:packageDmg'
glob: 'ohs-player-reference-app/build/compose/binaries/main/dmg/*.dmg'
task: ':reference-app:packageDmg'
glob: 'reference-app/build/compose/binaries/main/dmg/*.dmg'
artifact: macos-dmg
runs-on: ${{ matrix.os }}
permissions:
Expand Down Expand Up @@ -270,13 +270,13 @@ jobs:
- name: Create distributable app image
env:
VERSION_NAME: ${{ needs.preflight.outputs.version_name }}
run: ./gradlew :ohs-player-reference-app:createDistributable
run: ./gradlew :reference-app:createDistributable

- name: Tar up the distributable
shell: bash
run: |
shopt -s nullglob
APP_BASE=ohs-player-reference-app/build/compose/binaries/main/app
APP_BASE=reference-app/build/compose/binaries/main/app
app_dirs=("$APP_BASE"/*)
if [ ${#app_dirs[@]} -ne 1 ]; then
echo "::error::Expected exactly one app directory in $APP_BASE, got ${#app_dirs[@]}: ${app_dirs[*]}"
Expand Down Expand Up @@ -322,12 +322,12 @@ jobs:
- name: Build web distribution
env:
VERSION_NAME: ${{ needs.preflight.outputs.version_name }}
run: ./gradlew :ohs-player-reference-app:wasmJsBrowserDistribution
run: ./gradlew :reference-app:wasmJsBrowserDistribution

- name: Zip distribution for the GitHub Release
run: |
mkdir -p out
DIST=ohs-player-reference-app/build/dist/wasmJs/productionExecutable
DIST=reference-app/build/dist/wasmJs/productionExecutable
test -d "$DIST" || { echo "::error::Web dist directory missing: $DIST"; exit 1; }
(cd "$DIST" && zip -r "$GITHUB_WORKSPACE/out/ohs-player-web-${{ needs.preflight.outputs.version_name }}.zip" .)

Expand All @@ -342,7 +342,7 @@ jobs:
if: needs.preflight.outputs.is_dry_run == 'false' && needs.preflight.outputs.is_prerelease == 'false'
uses: actions/upload-pages-artifact@v3
with:
path: ohs-player-reference-app/build/dist/wasmJs/productionExecutable
path: reference-app/build/dist/wasmJs/productionExecutable

# Disabled alongside build-web. See the comment above build-web for the
# rationale and the steps to re-enable.
Expand Down
Loading