name: CI on: push: branches: ['*'] pull_request: branches: [main] env: HUSKY: 0 jobs: lint: name: Static code analysis runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Biome uses: biomejs/setup-biome@v2 - name: Run tests run: biome lint typescript: name: Type checking runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Cache Yarn cache uses: actions/cache@v4 env: cache-name: yarn-cache with: path: ~/.yarn/berry/cache key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-${{ env.cache-name }} - name: Use Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Enable Corepack run: corepack enable - name: Install dependencies run: yarn --immutable - name: Run type checking run: yarn tsc format: name: Formatting runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Biome uses: biomejs/setup-biome@v2 - name: Run formatting run: biome format unit: name: Unit tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Cache Yarn cache uses: actions/cache@v4 env: cache-name: yarn-cache with: path: ~/.yarn/berry/cache key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-${{ env.cache-name }} - name: Use Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Enable Corepack run: corepack enable - name: Install dependencies run: yarn --immutable - name: Run tests run: yarn unit