diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index abf8e166..868b4b51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,40 +24,79 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: oven-sh/setup-bun@v2 with: bun-version: latest + - uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} + restore-keys: bun-${{ runner.os }}- - run: bun install --frozen-lockfile + - uses: actions/cache@v4 + with: + path: | + .eslintcache + node_modules/.cache/prettier + key: lint-${{ runner.os }}-${{ github.sha }} + restore-keys: lint-${{ runner.os }}- - run: bun run lint typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: oven-sh/setup-bun@v2 with: bun-version: latest + - uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} + restore-keys: bun-${{ runner.os }}- - run: bun install --frozen-lockfile - run: bun run typecheck + env: + WORKBENCH_CHECK_SINCE: ${{ github.event.pull_request.base.sha }} build-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: oven-sh/setup-bun@v2 with: bun-version: latest + - uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} + restore-keys: bun-${{ runner.os }}- - run: bun install --frozen-lockfile - run: bun run build - run: bun run test + env: + WORKBENCH_CHECK_SINCE: ${{ github.event.pull_request.base.sha }} structural: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: oven-sh/setup-bun@v2 with: bun-version: latest + - uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} + restore-keys: bun-${{ runner.os }}- - run: bun install --frozen-lockfile - name: Structural check self-tests run: bun test scripts/checks/test @@ -99,9 +138,16 @@ jobs: steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - uses: oven-sh/setup-bun@v2 with: bun-version: latest + - uses: actions/cache@v4 + with: + path: ~/.bun/install/cache + key: bun-${{ runner.os }}-${{ hashFiles('bun.lock') }} + restore-keys: bun-${{ runner.os }}- - run: bun install --frozen-lockfile # The committed template ships a placeholder secret and a