From 41988d4da7b16998c5c1cc0aac01bad151bd13ae Mon Sep 17 00:00:00 2001 From: Insanerx <290829829+insanerx@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:19:19 +0300 Subject: [PATCH 1/6] ci(github-actions): add workflow for linting, matrix testing, and build --- .github/workflows/ci.yml | 95 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4694a1f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,95 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 11 + run_install: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run Linter + run: pnpm run lint + + test: + name: Unit & Integration Tests (Node ${{ matrix.node-version }}) + needs: lint + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18, 20, 22, 24] + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 11 + run_install: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Run Tests + run: pnpm test + + build: + name: Build & Verify + needs: [lint, test] + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 11 + run_install: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build Project + run: pnpm run build + + - name: Verify Examples + run: node examples/automate.js From 3c677b3a836b441b4a15aa72a07b1a6c530538e1 Mon Sep 17 00:00:00 2001 From: Insanerx <290829829+insanerx@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:25:51 +0300 Subject: [PATCH 2/6] ci: update pnpm setup to use standalone mode and improve node configuration --- .github/workflows/ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4694a1f..fdd6c3b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,13 +47,19 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 11 + standalone: true run_install: false - - name: Setup Node.js + - name: Enable pnpm cache uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} From 8be8c49b7eaa3429791c30b1ea0bb552a328d0df Mon Sep 17 00:00:00 2001 From: Insanerx <290829829+insanerx@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:30:13 +0300 Subject: [PATCH 3/6] ci: update Node.js version and refactor pnpm installation using Corepack --- .github/workflows/ci.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fdd6c3b..2ea79e8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,13 +18,18 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 11 run_install: false - - name: Setup Node.js + - name: Enable Cache uses: actions/setup-node@v4 with: node-version: 24 @@ -52,14 +57,12 @@ jobs: with: node-version: ${{ matrix.node-version }} - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 11 - standalone: true - run_install: false + - name: Enable Corepack & Install pnpm + run: | + corepack enable + corepack prepare pnpm@latest-11 --activate - - name: Enable pnpm cache + - name: Enable Cache uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} @@ -79,13 +82,18 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 24 + - name: Install pnpm uses: pnpm/action-setup@v4 with: version: 11 run_install: false - - name: Setup Node.js + - name: Enable Cache uses: actions/setup-node@v4 with: node-version: 24 From c29d71ac9cc841c74a205ba9dfff44d495616cb1 Mon Sep 17 00:00:00 2001 From: Insanerx <290829829+insanerx@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:32:27 +0300 Subject: [PATCH 4/6] chore: add pnpm@11.0.0 to packageManager field in package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4052f7b..0662029 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "volten", + "packageManager": "pnpm@11.0.0", "version": "0.1.0", "description": "A 0-dependency Node.js HTTP framework that is simple, modern, and fast.", "author": "insanerx", From f77efbad55fc3daee0a755e01034954cc01a8317 Mon Sep 17 00:00:00 2001 From: Insanerx <290829829+insanerx@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:34:02 +0300 Subject: [PATCH 5/6] refactor: standardize pnpm and Node.js setup order in CI workflows --- .github/workflows/ci.yml | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ea79e8..455eba3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,18 +18,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 24 - - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 11 run_install: false - - name: Enable Cache + - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 24 @@ -52,17 +46,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 with: - node-version: ${{ matrix.node-version }} - - - name: Enable Corepack & Install pnpm - run: | - corepack enable - corepack prepare pnpm@latest-11 --activate + run_install: false - - name: Enable Cache + - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} @@ -82,18 +71,12 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 24 - - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 11 run_install: false - - name: Enable Cache + - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 24 From 692a6b81942237605e21c1e4e028dbafe96d80a8 Mon Sep 17 00:00:00 2001 From: Insanerx <290829829+insanerx@users.noreply.github.com> Date: Thu, 13 Aug 2026 17:35:46 +0300 Subject: [PATCH 6/6] chore: restrict CI node versions to 22 and 24 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 455eba3..0d81f2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,7 +41,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [18, 20, 22, 24] + node-version: [22, 24] steps: - name: Checkout repository uses: actions/checkout@v4