name: Build Android on: push: branches: - main paths: - '.github/workflows/build-android.yml' - 'package/cpp/**' - 'package/android/**' - 'package/example/android/**' - 'package/yarn.lock' - 'package/example/yarn.lock' pull_request: paths: - '.github/workflows/build-android.yml' - 'package/cpp/**' - 'package/android/**' - 'package/example/android/**' - 'package/yarn.lock' - 'package/example/yarn.lock' jobs: build: name: Build Android Example App runs-on: ubuntu-latest defaults: run: working-directory: ./package steps: - uses: actions/checkout@v4 - name: Setup JDK 17 uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 java-package: jdk - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Restore node_modules from cache uses: actions/cache@v4 id: yarn-cache with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install node_modules run: yarn install --frozen-lockfile - name: Install node_modules for example/ run: yarn install --frozen-lockfile --cwd example - name: Restore Gradle cache uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - name: Run Gradle Build for example/android/ run: cd example/android && ./gradlew assembleDebug --build-cache && cd ../.. build-no-frame-processors: name: Build Android Example App (without Frame Processors) runs-on: ubuntu-latest defaults: run: working-directory: ./package steps: - uses: actions/checkout@v4 - name: Setup JDK 17 uses: actions/setup-java@v4 with: distribution: 'zulu' java-version: 17 java-package: jdk - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Restore node_modules from cache uses: actions/cache@v4 id: yarn-cache with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install node_modules run: yarn install --frozen-lockfile - name: Install node_modules for example/ run: yarn install --frozen-lockfile --cwd example - name: Remove react-native-worklets-core run: yarn remove react-native-worklets-core --cwd example - name: Restore Gradle cache uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - name: Run Gradle Build for example/android/ run: cd example/android && ./gradlew assembleDebug --build-cache && cd ../..