Skip to content

refactor: split client APIs from universal packages #338

refactor: split client APIs from universal packages

refactor: split client APIs from universal packages #338

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
js-lint:
name: '[JS] Format & Lint'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Check JS formatting
run: npm run format:js:check
- name: Run JS linter
run: npm run lint:libOnly
js-build:
name: '[JS] Build'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build JS packages
run: npm run build:all
typecheck:
name: '[JS] Types validation'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run type check
run: npm run typecheck
test:
name: '[JS] Test'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm run test:js
native-kotlin-test:
name: '[Kotlin] Test'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build monorepo
run: npm run build:all
- name: Generate Android native project
working-directory: example
run: CI=1 npx expo prebuild --platform android
- name: Run Kotlin native tests
working-directory: example/android
run: ./gradlew :voltra:testDebugUnitTest
native-swift-test:
name: '[Swift] Test'
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run Swift native tests
run: npm run test:swift
swiftformat:
name: '[Swift] Format & Lint'
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
- name: Check Swift formatting
run: npm run format:swift:check
ktlint:
name: '[Kotlin] Format & Lint'
runs-on: ubuntu-latest
env:
KTLINT_VERSION: 1.8.0
KTLINT_SHA256: a3fd620207d5c40da6ca789b95e7f823c54e854b7fade7f613e91096a3706d75
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24.14.0'
cache: 'npm'
# Downloading the pinned release binary is much faster in CI than installing ktlint via Homebrew.
- name: Install ktlint
run: |
mkdir -p "$RUNNER_TEMP/bin"
curl -fsSL \
"https://github.com/pinterest/ktlint/releases/download/${KTLINT_VERSION}/ktlint" \
-o "$RUNNER_TEMP/bin/ktlint"
echo "${KTLINT_SHA256} $RUNNER_TEMP/bin/ktlint" | sha256sum --check --
chmod +x "$RUNNER_TEMP/bin/ktlint"
echo "$RUNNER_TEMP/bin" >> "$GITHUB_PATH"
- name: Check ktlint version
run: ktlint --version
- name: Check Kotlin formatting
run: npm run format:kotlin:check