Skip to content

feat(ios): bring the New work form to parity with the web form #1145

feat(ios): bring the New work form to parity with the web form

feat(ios): bring the New work form to parity with the web form #1145

Workflow file for this run

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 .