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: Cache Yarn cache uses: actions/cache@v3 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: '20' - name: Enable Corepack run: corepack enable - name: Install dependencies run: yarn --immutable - name: Build package run: yarn build - name: Run tests run: yarn lint typescript: name: Type checking runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Cache Yarn cache uses: actions/cache@v3 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: '20' - name: Enable Corepack run: corepack enable - name: Install dependencies run: yarn --immutable - name: Build package run: yarn build - name: Run type checking run: yarn tsc prettier: name: Prettier runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Cache Yarn cache uses: actions/cache@v3 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: '20' - name: Enable Corepack run: corepack enable - name: Install dependencies run: yarn --immutable - name: Prettier run: yarn prettier unit: name: Unit tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Cache Yarn cache uses: actions/cache@v3 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: '20' - name: Enable Corepack run: corepack enable - name: Install dependencies run: yarn --immutable - name: Run tests run: yarn unit