name: Quality Assurance on: workflow_call: push: pull_request: jobs: typecheck: name: typecheck runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 - name: Setup Bun uses: oven-sh/setup-bun@v2 - name: Cache Bun Dependencies uses: actions/cache@v4 with: path: ~/.bun/install/cache key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | ${{ runner.os }}-bun- - name: Install Dependencies run: bun install --frozen-lockfile - name: Run Type Checker run: | bun run typecheck lint: name: lint runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 - name: Setup Bun uses: oven-sh/setup-bun@v2 - name: Cache Bun Dependencies uses: actions/cache@v4 with: path: ~/.bun/install/cache key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | ${{ runner.os }}-bun- - name: Install Dependencies run: bun install --frozen-lockfile - name: Run Linter run: | bun run lint