Skip to content

feat!: the build step is the CLI's binary create — the Xcode phase "C… #5

feat!: the build step is the CLI's binary create — the Xcode phase "C…

feat!: the build step is the CLI's binary create — the Xcode phase "C… #5

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
env:
JAVA_VERSION: 21
# Debug builds: they compile both native projects with the SDK and need no credential, since a debug build asks
# Metro for its JavaScript and embeds nothing. The release builds, whose build step creates the binary, are the
# device test's, in the monorepo.
jobs:
javascript:
name: Check the JavaScript
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
android:
name: Build the Android debug app
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: npm
- uses: actions/setup-java@v5
with:
distribution: zulu
java-version: ${{ env.JAVA_VERSION }}
- uses: gradle/actions/setup-gradle@v5
- run: npm ci
- run: ./gradlew assembleDebug --console=plain
working-directory: android
ios:
name: Build the iOS simulator app
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: npm
- run: npm ci
- run: pod install
working-directory: ios
- run: xcodebuild -workspace ios/HotCodePushDemo.xcworkspace -scheme HotCodePushDemo -configuration Debug -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO -quiet build