Repository navigation
feat(ios): bring the New work form to parity with the web form #1145
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] | |
| jobs: | |
| format: | |
| name: Format | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm format:check | |
| typecheck: | |
| name: Typecheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm turbo typecheck | |
| swift-types: | |
| name: Swift Types In Sync | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: bash scripts/check-swift-types.sh | |
| kotlin-types: | |
| name: Kotlin Types In Sync | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: bash scripts/check-kotlin-types.sh | |
| android: | |
| name: Android (build + unit tests) | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: apps/android | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| # The action's default packages include the legacy `tools`, which the SDK repository no | |
| # longer has (sdkmanager exits 1); AGP downloads the platform it needs itself. | |
| - uses: android-actions/setup-android@v3 | |
| with: | |
| packages: platform-tools | |
| - uses: gradle/actions/setup-gradle@v4 | |
| # Android modules run `testDebugUnitTest`; :core:model and :core:network are pure JVM (`test`). | |
| - run: ./gradlew assembleDebug testDebugUnitTest :core:model:test :core:network:test --stacktrace | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: android-test-reports | |
| path: apps/android/**/build/reports/tests/ | |
| retention-days: 7 | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: pnpm turbo test | |
| integration: | |
| name: Integration Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: bash scripts/test-infra.sh start | |
| - run: pnpm --filter @optio/api test:integration | |
| e2e: | |
| name: E2E Test (fake runtime) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: bash scripts/test-infra.sh start | |
| - run: pnpm --filter @optio/api test:e2e | |
| web-e2e: | |
| name: Web E2E (Playwright) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: bash scripts/test-infra.sh start | |
| - name: Install Playwright chromium | |
| run: cd apps/web && npx playwright install --with-deps chromium | |
| - run: pnpm --filter @optio/web test:e2e | |
| - uses: actions/upload-artifact@v4 | |
| if: failure() | |
| with: | |
| name: playwright-report | |
| path: apps/web/playwright-report/ | |
| retention-days: 7 | |
| openapi-lint: | |
| name: OpenAPI Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - name: Generate OpenAPI spec | |
| run: pnpm --filter @optio/api openapi:dump | |
| - name: Lint OpenAPI spec | |
| run: pnpm --filter @optio/api openapi:lint | |
| - name: Verify spec generates valid TypeScript | |
| run: | | |
| pnpm --filter @optio/api openapi:types | |
| cd apps/api && npx tsc --noEmit --target es2022 --module esnext --moduleResolution bundler openapi.generated.d.ts | |
| build-web: | |
| name: Build Web | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: cd apps/web && npx next build | |
| build-site: | |
| name: Build Site | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| - run: cd apps/site && npx next build | |
| build-image: | |
| name: Build Agent Image | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build base image | |
| run: docker build -t optio-base:latest -f images/base.Dockerfile . | |
| - name: Build node image | |
| run: docker build -t optio-node:latest -f images/node.Dockerfile . |