name: CI on: pull_request: push: branches: - main workflow_dispatch: permissions: contents: read concurrency: group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: validate: name: Validate runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Checkout repository uses: https://data.forgejo.org/actions/checkout@v4 - name: Install Bun run: | set -euo pipefail apt-get update apt-get install --yes --no-install-recommends curl unzip rm -rf /var/lib/apt/lists/* curl -fsSL https://bun.sh/install | bash ~/.bun/bin/bun --version - name: Install dependencies run: ~/.bun/bin/bun install --frozen-lockfile - name: Run typecheck run: ~/.bun/bin/bun run typecheck - name: Run tests run: ~/.bun/bin/bun test - name: Check Docker workspace snapshot run: ~/.bun/bin/bun run check:docker-workspace - name: Build web app run: ~/.bun/bin/bun --cwd=apps/web run build