Node js (partial and experimental) support #504
Workflow file for this run
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: CI | |
| on: pull_request | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Typecheck files | |
| run: yarn typecheck | |
| test-ios: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Xcode Select | |
| run: sudo xcode-select -s /Applications/Xcode_16.4.app | |
| - name: Turn off addons | |
| run: | | |
| node ./scripts/turnOffEverything.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: install bundler dependencies | |
| run: | | |
| cd example | |
| bundle install | |
| - name: Cache cocoapods | |
| id: cocoapods-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| **/ios/Pods | |
| key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cocoapods- | |
| - name: Install cocoapods | |
| run: | | |
| cd example/ios | |
| bundle exec pod install | |
| env: | |
| NO_FLIPPER: 1 | |
| - name: run tests | |
| run: | | |
| ./scripts/test-ios.sh | |
| test-ios-embedded: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Xcode Select | |
| run: sudo xcode-select -s /Applications/Xcode_16.4.app | |
| - name: Turn on ios embedded | |
| run: | | |
| node ./scripts/turnOnIOSEmbedded.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: install bundler dependencies | |
| run: | | |
| cd example | |
| bundle install | |
| - name: Cache cocoapods | |
| id: cocoapods-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| **/ios/Pods | |
| key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cocoapods- | |
| - name: Install cocoapods | |
| run: | | |
| cd example/ios | |
| bundle exec pod install | |
| env: | |
| NO_FLIPPER: 1 | |
| - name: run tests | |
| run: | | |
| ./scripts/test-ios.sh | |
| test-ios-sqlcipher: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Xcode Select | |
| run: sudo xcode-select -s /Applications/Xcode_16.4.app | |
| - name: Turn on SQLCipher | |
| run: | | |
| node ./scripts/turnOnSQLCipher.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: install bundler dependencies | |
| run: | | |
| cd example | |
| bundle install | |
| - name: Cache cocoapods | |
| id: cocoapods-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| **/ios/Pods | |
| key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cocoapods- | |
| - name: Install cocoapods | |
| run: | | |
| cd example/ios | |
| bundle exec pod install | |
| env: | |
| NO_FLIPPER: 1 | |
| - name: run tests | |
| run: | | |
| ./scripts/test-ios.sh | |
| test-ios-libsql: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Xcode Select | |
| run: sudo xcode-select -s /Applications/Xcode_16.4.app | |
| - name: Turn on SQLCipher | |
| run: | | |
| node ./scripts/turnOnLibsql.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: install bundler dependencies | |
| run: | | |
| cd example | |
| bundle install | |
| - name: Cache cocoapods | |
| id: cocoapods-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| **/ios/Pods | |
| key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cocoapods- | |
| - name: Install cocoapods | |
| run: | | |
| cd example/ios | |
| bundle exec pod install | |
| env: | |
| NO_FLIPPER: 1 | |
| - name: run tests | |
| run: | | |
| ./scripts/test-ios.sh | |
| test-android: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: insightsengineering/disk-space-reclaimer@v1 | |
| with: | |
| # this might remove tools that are actually needed, | |
| # if set to "true" but frees about 6 GB | |
| tools-cache: false | |
| # all of these default to true, but feel free to set to | |
| # "false" if necessary for your workflow | |
| android: false | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| swap-storage: true | |
| docker-images: true | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Turn off addons | |
| run: | | |
| node ./scripts/turnOffEverything.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Install JDK | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Enable KVM | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Gradle cache | |
| uses: gradle/actions/setup-gradle@v3 | |
| # - name: AVD cache | |
| # uses: actions/cache@v4 | |
| # id: avd-cache | |
| # with: | |
| # path: | | |
| # ~/.android/avd/* | |
| # ~/.android/adb* | |
| # key: avd-29 | |
| - name: create AVD and generate snapshot for caching | |
| # if: steps.avd-cache.outputs.cache-hit != 'true' | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 29 | |
| force-avd-creation: false | |
| emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: false | |
| script: echo "Generated AVD snapshot for caching." | |
| - name: Give execute permissions to script | |
| run: chmod +x ./scripts/test-android.sh | |
| - name: run tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 29 | |
| force-avd-creation: false | |
| emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: true | |
| script: | | |
| ./scripts/test-android.sh | |
| test-android-sqlcipher: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Free Disk Space (Ubuntu) | |
| uses: insightsengineering/disk-space-reclaimer@v1 | |
| with: | |
| # this might remove tools that are actually needed, | |
| # if set to "true" but frees about 6 GB | |
| tools-cache: false | |
| # all of these default to true, but feel free to set to | |
| # "false" if necessary for your workflow | |
| android: false | |
| dotnet: true | |
| haskell: true | |
| large-packages: true | |
| swap-storage: true | |
| docker-images: true | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Turn on SQLCipher | |
| run: | | |
| node ./scripts/turnOnSQLCipher.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Install JDK | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Enable KVM | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Gradle cache | |
| uses: gradle/actions/setup-gradle@v3 | |
| # - name: AVD cache | |
| # uses: actions/cache@v4 | |
| # id: avd-cache | |
| # with: | |
| # path: | | |
| # ~/.android/avd/* | |
| # ~/.android/adb* | |
| # key: avd-29 | |
| - name: create AVD and generate snapshot for caching | |
| # if: steps.avd-cache.outputs.cache-hit != 'true' | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 29 | |
| force-avd-creation: false | |
| emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: false | |
| script: echo "Generated AVD snapshot for caching." | |
| - name: Give execute permissions to script | |
| run: chmod +x ./scripts/test-android.sh | |
| - name: run tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 29 | |
| force-avd-creation: false | |
| emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: true | |
| script: | | |
| adb wait-for-device | |
| adb shell input keyevent 82 | |
| ./scripts/test-android.sh | |
| test-android-libsql: | |
| runs-on: ubuntu-latest | |
| env: | |
| TURBO_CACHE_DIR: .turbo/android | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - run: node ./scripts/turnOnLibsql.js | |
| - name: Setup | |
| uses: ./.github/actions/setup | |
| - name: Install JDK | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: "zulu" | |
| java-version: "17" | |
| - name: Finalize Android SDK | |
| run: | | |
| /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" | |
| - name: Cache Gradle | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.gradle/wrapper | |
| ~/.gradle/caches | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('example/android/gradle/wrapper/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Enable KVM | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| - name: Give execute permissions to script | |
| run: chmod +x ./scripts/test-android.sh | |
| - name: run tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: 29 | |
| emulator-options: -no-window -no-boot-anim -no-audio -no-snapshot-load | |
| script: | | |
| adb wait-for-device | |
| adb shell input keyevent 82 | |
| ./scripts/test-android.sh |