{"path":".github/workflows/ci.yml","size":2640,"locked":false,"binary":false,"truncated":false,"content":"name: CI\n\non:\n  push:\n    branches: [main, beta, mini-test]\n  pull_request:\n    branches: [main, beta]\n\npermissions:\n  contents: read\n\nconcurrency:\n  group: ci-${{ github.workflow }}-${{ github.ref }}\n  cancel-in-progress: true\n\njobs:\n  workspace:\n    runs-on: ubuntu-22.04\n    steps:\n      - uses: actions/checkout@v4\n\n      - uses: pnpm/action-setup@v4\n        with:\n          version: 11\n          run_install: false\n\n      - uses: actions/setup-node@v4\n        with:\n          node-version: \"22\"\n          cache: pnpm\n\n      - name: Install dependencies\n        run: pnpm install --frozen-lockfile\n\n      - name: Typecheck libraries\n        run: pnpm run typecheck:libs\n\n      - name: Typecheck full workspace\n        run: pnpm run typecheck\n\n      - name: Build workspace\n        run: pnpm run build\n\n  oracle:\n    runs-on: ubuntu-22.04\n    steps:\n      - uses: actions/checkout@v4\n\n      - uses: pnpm/action-setup@v4\n        with:\n          version: 11\n          run_install: false\n\n      - uses: actions/setup-node@v4\n        with:\n          node-version: \"22\"\n          cache: pnpm\n\n      - name: Install workspace dependencies\n        run: pnpm install --frozen-lockfile\n\n      - name: Typecheck oracle\n        run: pnpm run typecheck:oracle\n\n      - name: Test oracle\n        run: pnpm run test:oracle\n\n  format-check:\n    runs-on: ubuntu-22.04\n    steps:\n      - uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - uses: pnpm/action-setup@v4\n        with:\n          version: 11\n          run_install: false\n\n      - uses: actions/setup-node@v4\n        with:\n          node-version: \"22\"\n          cache: pnpm\n\n      - name: Install dependencies\n        run: pnpm install --frozen-lockfile\n\n      - name: Check formatting of changed files\n        shell: bash\n        run: |\n          if [ \"$GITHUB_EVENT_NAME\" = \"pull_request\" ]; then\n            base_sha=\"${{ github.event.pull_request.base.sha }}\"\n          else\n            base_sha=\"${{ github.event.before }}\"\n            if [ -z \"$base_sha\" ] || [ \"$base_sha\" = \"0000000000000000000000000000000000000000\" ]; then\n              base_sha=\"$(git rev-list --max-parents=0 HEAD)\"\n            fi\n          fi\n\n          if ! git cat-file -e \"$base_sha^{commit}\" 2>/dev/null; then\n            base_sha=\"$(git rev-parse HEAD^ 2>/dev/null || git rev-list --max-parents=0 HEAD)\"\n          fi\n\n          git diff --diff-filter=ACMR --name-only -z \"$base_sha\" \"$GITHUB_SHA\" -- \\\n            '*.css' '*.html' '*.js' '*.jsx' '*.json' '*.md' '*.mjs' '*.scss' \\\n            '*.ts' '*.tsx' '.github/workflows/*.yml' |\n            xargs -0 -r pnpm exec prettier --check\n"}