From 196d87eaea8c00114a9faa8f6e470ba184da39fd Mon Sep 17 00:00:00 2001 From: Schluffe Date: Thu, 27 Aug 2026 12:46:42 +0200 Subject: [PATCH] Add CI stuff --- .gitea/workflows/ci.yaml | 44 +++++++++++++++++++++++ bench/index.ts | 0 workshop/steps/06-ray-vs-aabb/given.ts | 4 +-- workshop/steps/07-swept-aabb/given.ts | 4 +-- workshop/steps/10-move-and-slide/given.ts | 4 +-- 5 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 .gitea/workflows/ci.yaml create mode 100644 bench/index.ts diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml new file mode 100644 index 0000000..7a32aea --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,44 @@ +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 \ No newline at end of file diff --git a/bench/index.ts b/bench/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/workshop/steps/06-ray-vs-aabb/given.ts b/workshop/steps/06-ray-vs-aabb/given.ts index 6255b2b..0ff21eb 100644 --- a/workshop/steps/06-ray-vs-aabb/given.ts +++ b/workshop/steps/06-ray-vs-aabb/given.ts @@ -13,9 +13,7 @@ export function sweepInterval( max: number, ): Span | null { if (v === 0) { - return min <= p && p <= max - ? { entry: -Infinity, exit: Infinity } - : null; + return min <= p && p <= max ? { entry: -Infinity, exit: Infinity } : null; } let t1 = (min - p) / v; diff --git a/workshop/steps/07-swept-aabb/given.ts b/workshop/steps/07-swept-aabb/given.ts index 8412200..2470dd5 100644 --- a/workshop/steps/07-swept-aabb/given.ts +++ b/workshop/steps/07-swept-aabb/given.ts @@ -14,9 +14,7 @@ export function sweepInterval( max: number, ): Span | null { if (v === 0) { - return min <= p && p <= max - ? { entry: -Infinity, exit: Infinity } - : null; + return min <= p && p <= max ? { entry: -Infinity, exit: Infinity } : null; } let t1 = (min - p) / v; diff --git a/workshop/steps/10-move-and-slide/given.ts b/workshop/steps/10-move-and-slide/given.ts index 93f22dd..99b8652 100644 --- a/workshop/steps/10-move-and-slide/given.ts +++ b/workshop/steps/10-move-and-slide/given.ts @@ -20,9 +20,7 @@ export function sweepInterval( max: number, ): Span | null { if (v === 0) { - return min <= p && p <= max - ? { entry: -Infinity, exit: Infinity } - : null; + return min <= p && p <= max ? { entry: -Infinity, exit: Infinity } : null; } let t1 = (min - p) / v; let t2 = (max - p) / v;