From 0dd09788fc598c7b1fc064bec9445c97678edc7e Mon Sep 17 00:00:00 2001 From: Igal Klebanov Date: Thu, 27 Jun 2024 02:06:04 +0300 Subject: [PATCH] ci: split jobs. (#943) --- .github/workflows/test.yml | 140 ++++++++++++++++++++++++++++++++----- 1 file changed, 121 insertions(+), 19 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 14e67d219..300c25495 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,14 +7,13 @@ on: branches: [master] jobs: - run-tests: + node: + name: Node.js runs-on: ubuntu-latest strategy: matrix: node-version: [18.x, 20.x, 22.x] - bun-version: [1.1.x] - deno-version: [1.42.x] steps: - uses: actions/checkout@v4 @@ -25,43 +24,146 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' + - name: Install dependencies + run: npm ci + + - name: Run docker compose + run: docker compose up -d + + - name: Run node tests + run: npm test + + - name: Run esbuild test + run: npm run test:esbuild + + node-with-transformer: + name: Node.js /w transformer + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x, 22.x] + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run docker compose + run: docker compose up -d + + - name: Run node tests with transformer + run: TEST_TRANSFORMER=1 npm test + + deno: + name: Deno + runs-on: ubuntu-latest + + strategy: + matrix: + deno-version: [1.42.x] + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 22.x + cache: 'npm' + + - name: Install dependencies + run: npm ci + - name: Use Deno ${{ matrix.deno-version }} uses: denoland/setup-deno@v1 with: deno-version: ${{ matrix.deno-version }} - - name: Use Bun ${{ matrix.bun-version }} - uses: oven-sh/setup-bun@v1 + - name: Run docker compose + run: docker compose up -d + + - name: Run deno tests + run: npm run test:deno + + bun: + name: Bun + runs-on: ubuntu-latest + + strategy: + matrix: + bun-version: [1.1.x] + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 with: - bun-version: ${{ matrix.bun-version }} + node-version: 22.x + cache: 'npm' - name: Install dependencies run: npm ci - - name: Install playwright - run: npx playwright install chromium + - name: Use Bun ${{ matrix.bun-version }} + uses: oven-sh/setup-bun@v1 + with: + bun-version: ${{ matrix.bun-version }} - name: Run docker compose run: docker compose up -d - - name: Run node tests - run: npm test + - name: Run bun tests + run: npm run test:bun - - name: Run node tests with transformer - run: TEST_TRANSFORMER=1 npm test + browser: + name: Browser + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 22.x + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Install playwright + run: npx playwright install chromium - name: Run browser tests run: npm run test:browser - - name: Run deno tests - run: npm run test:deno + cloudflare-workers: + name: Cloudflare Workers + runs-on: ubuntu-latest - - name: Run bun tests - run: npm run test:bun + steps: + - uses: actions/checkout@v4 - - name: Run esbuild test - run: npm run test:esbuild + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 22.x + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run docker compose + run: docker compose up -d - name: Run cloudflare workers test - if: matrix.node-version != '18.x' run: npm run test:cloudflare-workers