name: CI on: workflow_dispatch: inputs: run_benchmark: description: 'Run benchmark job' type: boolean default: true concurrency: group: bench-${{ github.ref }} cancel-in-progress: false jobs: test: runs-on: ubuntu-bun-deno 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: (github.event_name == 'workflow_dispatch' && inputs.run_benchmark) runs-on: ubuntu-bun-deno 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