From d9eb320bba289f29059af85978a614221cc9c510 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 9 Dec 2025 01:00:35 +0100 Subject: [PATCH] ci: test node and bun runtimes --- .github/workflows/ci.yml | 42 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5b5d7b6a..06c0b5409 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,20 +7,39 @@ on: jobs: build: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + runtime: [node, bun] steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js + if: matrix.runtime == 'node' uses: actions/setup-node@v4 with: node-version: 22 check-latest: true - - name: Node version + - name: Setup Bun + if: matrix.runtime == 'bun' + uses: oven-sh/setup-bun@v2 + with: + bun-version: "1.3.x" + + - name: Setup Node.js (tooling for bun) + if: matrix.runtime == 'bun' + uses: actions/setup-node@v4 + with: + node-version: 22 + check-latest: true + + - name: Runtime versions run: | node -v npm -v + if [ "${{ matrix.runtime }}" = "bun" ]; then bun -v; fi - name: Capture node path run: echo "NODE_BIN=$(dirname \"$(node -p \"process.execPath\")\")" >> "$GITHUB_ENV" @@ -41,15 +60,30 @@ jobs: pnpm -v pnpm install --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true || pnpm install --ignore-scripts=false --config.engine-strict=false --config.enable-pre-post-scripts=true - - name: Lint + - name: Lint (node) + if: matrix.runtime == 'node' run: pnpm lint - - name: Test + - name: Test (node) + if: matrix.runtime == 'node' run: pnpm test - - name: Build + - name: Build (node) + if: matrix.runtime == 'node' run: pnpm build + - name: Lint (bun) + if: matrix.runtime == 'bun' + run: bunx biome check src + + - name: Test (bun) + if: matrix.runtime == 'bun' + run: bunx vitest run + + - name: Build (bun) + if: matrix.runtime == 'bun' + run: bunx tsc -p tsconfig.json + macos-app: runs-on: macos-latest steps: