name: CI on: push: push: tags: - 'bench-*' concurrency: group: bench-${{ github.ref }} cancel-in-progress: false jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/cache@v4 with: path: ~/.bun/install/cache key: bun-${{ hashFiles('bun.lockb') }} - run: bun install --frozen-lockfile - run: bun test benchmark: if: startsWith(github.ref, 'refs/tags/perf-') needs: test runs-on: ubuntu-latest strategy: matrix: runtime: [bun, deno] max-parallel: 1 steps: - uses: actions/checkout@v4 - uses: actions/cache@v4 with: path: ~/.bun/install/cache key: bun-${{ hashFiles('bun.lockb') }} - run: bun install --frozen-lockfile - run: bun run bench/index.ts --json > result-${{ matrix.runtime }}.json - uses: actions/upload-artifact@v4 with: name: bench-results-${{ matrix.runtime }} path: result-${{ matrix.runtime }}.json