feat: add CLI dynamic widget generation #521
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 pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Check JS formatting | |
| run: pnpm run format:js:check | |
| - name: Run JS linter | |
| run: pnpm run lint:libOnly | |
| js-build: | |
| name: '[JS] Build' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build JS packages | |
| run: pnpm run build:all | |
| typecheck: | |
| name: '[JS] Types validation' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Run type check | |
| run: pnpm run typecheck | |
| test: | |
| name: '[JS] Test' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Run JS tests via Turbo | |
| run: pnpm 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 pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build monorepo | |
| run: pnpm run build:all | |
| - name: Generate Android native project | |
| working-directory: example | |
| run: CI=1 pnpm exec expo prebuild --platform android | |
| - name: Run Kotlin native tests | |
| working-directory: example/android | |
| run: ./gradlew :use-voltra_android-client:testDebugUnitTest | |
| native-swift-test: | |
| name: '[Swift] Test' | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Run Swift native tests | |
| run: pnpm run test:swift | |
| swiftformat: | |
| name: '[Swift] Format & Lint' | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| - name: Check Swift formatting | |
| run: pnpm 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 pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 11.5.0 | |
| run_install: false | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24.14.0' | |
| cache: 'pnpm' | |
| # 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: pnpm run format:kotlin:check |