name: ci on: push: branches: [main] pull_request: workflow_dispatch: jobs: fmt: name: fmt runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies run: bun install - name: Check formatting run: bun run fmt lint: name: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies run: bun install - name: Run linter run: bun run lint typecheck: name: type check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v1 with: bun-version: latest - name: Install dependencies run: bun install - name: Check types run: bun run typecheck test: name: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: recursive - uses: oven-sh/setup-bun@v1 with: bun-version: latest - uses: ./.github/actions/setup-zig with: version: 0.15.2 - name: Build WASM run: ./scripts/build-wasm.sh - name: Install dependencies run: bun install - name: Run tests run: bun test build: name: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: recursive - uses: oven-sh/setup-bun@v1 with: bun-version: latest - uses: ./.github/actions/setup-zig with: version: 0.15.2 - name: Build WASM run: ./scripts/build-wasm.sh - name: Check WASM size run: | SIZE=$(stat -c%s ghostty-vt.wasm) echo "WASM size: $SIZE bytes" if [ "$SIZE" -gt 524288 ]; then echo "❌ Error: WASM exceeds 512 KB limit" exit 1 fi - name: Install dependencies run: bun install - name: Build library run: bun run build