refactor: split client APIs from universal packages #338
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: | |
| 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 |