Merge main into next: canonical URL, retire GitHub Pages #34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - next | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| js: | |
| name: JS (types, lint, format, vitest) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Enable Corepack | |
| run: corepack enable | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: 'yarn' | |
| - name: Install dependencies | |
| run: yarn install | |
| - name: Typecheck | |
| run: yarn types | |
| - name: Lint | |
| run: yarn ci:lint | |
| - name: Format | |
| run: yarn ci:format | |
| - name: Test | |
| run: yarn test | |
| ios: | |
| name: iOS (swift test) | |
| runs-on: macos-26 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup Xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: 26.2 | |
| # No --disable-sandbox here: CI runners are unsandboxed, so SwiftPM can | |
| # shell out to sandbox-exec to compile the manifest. See CLAUDE.md. | |
| - name: Test | |
| run: swift test | |
| android: | |
| name: Android (unit tests) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Enable Corepack | |
| run: corepack enable | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '24' | |
| cache: 'yarn' | |
| # The library is not a standalone Gradle project — it is pulled in by the | |
| # example app's autolinking, so node_modules has to exist first. | |
| - name: Install dependencies | |
| run: yarn install | |
| - name: Setup JDK 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'zulu' | |
| java-version: '17' | |
| cache: 'gradle' | |
| - name: Cache Gradle | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('apps/example-native/android/**/*.gradle*') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Test | |
| working-directory: apps/example-native/android | |
| run: ./gradlew :react-native-audio-browser:testDebugUnitTest --no-daemon --build-cache | |
| - name: Upload test report | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: android-test-report | |
| path: android/build/reports/tests/ | |
| - name: Stop Gradle daemon | |
| if: always() | |
| working-directory: apps/example-native/android | |
| run: ./gradlew --stop |