From 2405c3bea0b8d6bb77ecdd060703cedb565f65a4 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 11:52:31 +0100 Subject: [PATCH 1/7] feat: add github actions workflow for continuous integration --- .github/workflows/ci.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 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..c0ca627 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,35 @@ +name: CI + +on: + pull_request: + branches: + - main + push: + branches: + - main + +jobs: + validate: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: 'npm' + + - name: Install workspace dependencies + run: npm ci + + - name: Run TypeScript checks + run: npm run typecheck + + - name: Run application build + run: npm run build + + - name: Run documentation build + run: npm run build:docs \ No newline at end of file From 9be881584f1db1ca0f37cdeb9b97dac2fcba4da4 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 11:57:36 +0100 Subject: [PATCH 2/7] fix: utilize pnpm action setup to resolve workspace protocol error --- .github/workflows/ci.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0ca627..54f44d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,20 +16,25 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 # Matches your local environment setup + - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 18 - cache: 'npm' + cache: 'pnpm' - name: Install workspace dependencies - run: npm ci + run: pnpm install --frozen-lockfile - name: Run TypeScript checks - run: npm run typecheck + run: pnpm run typecheck - name: Run application build - run: npm run build + run: pnpm run build - name: Run documentation build - run: npm run build:docs \ No newline at end of file + run: pnpm run build:docs \ No newline at end of file From e4d05d44042e51164e0183bcf7946f42ab604706 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 11:58:59 +0100 Subject: [PATCH 3/7] fix: adjust setup-node cache engine and deploy via npm install for workspaces --- .github/workflows/ci.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54f44d4..430fbc2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,25 +16,20 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Install pnpm - uses: pnpm/action-setup@v4 - with: - version: 9 # Matches your local environment setup - - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 18 - cache: 'pnpm' + cache: 'npm' # Configures caching back to look for package-lock.json - name: Install workspace dependencies - run: pnpm install --frozen-lockfile + run: npm install # Handles native npm workspace linking cleanly in CI - name: Run TypeScript checks - run: pnpm run typecheck + run: npm run typecheck - name: Run application build - run: pnpm run build + run: npm run build - name: Run documentation build - run: pnpm run build:docs \ No newline at end of file + run: npm run build:docs \ No newline at end of file From 841753bd14e2cb9a3bdc14967a52cd2978fea320 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 12:00:18 +0100 Subject: [PATCH 4/7] fix: switch runner execution to yarn to natively support workspace protocol definitions --- .github/workflows/ci.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 430fbc2..08dd465 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,16 +20,18 @@ jobs: uses: actions/setup-node@v4 with: node-version: 18 - cache: 'npm' # Configures caching back to look for package-lock.json + cache: 'yarn' - name: Install workspace dependencies - run: npm install # Handles native npm workspace linking cleanly in CI + run: | + yarn config set no-progress true + yarn install - name: Run TypeScript checks - run: npm run typecheck + run: yarn typecheck - name: Run application build - run: npm run build + run: yarn build - name: Run documentation build - run: npm run build:docs \ No newline at end of file + run: yarn build:docs \ No newline at end of file From 647c2c6f0293b87737f2ba33c00357ccf7950aa8 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 12:01:48 +0100 Subject: [PATCH 5/7] fix: remove setup-node cache restriction and upgrade runner npm engine --- .github/workflows/ci.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 08dd465..66639ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,18 +20,18 @@ jobs: uses: actions/setup-node@v4 with: node-version: 18 - cache: 'yarn' + + - name: Upgrade npm to latest stable + run: npm install -g npm@latest - name: Install workspace dependencies - run: | - yarn config set no-progress true - yarn install + run: npm install --include=dev - name: Run TypeScript checks - run: yarn typecheck + run: npm run typecheck - name: Run application build - run: yarn build + run: npm run build - name: Run documentation build - run: yarn build:docs \ No newline at end of file + run: npm run build:docs \ No newline at end of file From c664a63ad0f11f3e13236d436cb3f70a678f7d94 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 12:04:17 +0100 Subject: [PATCH 6/7] fix: bump runner to node 20 and patch workspace protocol syntax for native npm compatibility --- .github/workflows/ci.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 66639ef..bf0258d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,13 +19,14 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 + cache: 'npm' - - name: Upgrade npm to latest stable - run: npm install -g npm@latest + - name: Patch package manager protocol + run: find . -name "package.json" -not -path "*/node_modules/*" -exec sed -i 's/"workspace:\*"/"*"/g' {} + - name: Install workspace dependencies - run: npm install --include=dev + run: npm install - name: Run TypeScript checks run: npm run typecheck From 1f17ea09c4be5a19d3e6c5f9d0368d7de7d8c166 Mon Sep 17 00:00:00 2001 From: Adedeji Mustapha Date: Sat, 13 Jun 2026 12:12:52 +0100 Subject: [PATCH 7/7] fix: patch existing CI pipeline to resolve workspace protocol crashes and include docs build --- .github/workflows/ci.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf0258d..a029a9d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,15 +1,13 @@ name: CI on: - pull_request: - branches: - - main push: - branches: - - main + branches: [ main, master ] + pull_request: + branches: [ main, master ] jobs: - validate: + build-and-test: runs-on: ubuntu-latest steps: @@ -23,16 +21,24 @@ jobs: cache: 'npm' - name: Patch package manager protocol + # Converts pnpm's "workspace:*" to npm's "*" natively so npm install doesn't crash run: find . -name "package.json" -not -path "*/node_modules/*" -exec sed -i 's/"workspace:\*"/"*"/g' {} + - - name: Install workspace dependencies + - name: Install dependencies + # Replaced 'npm ci' with 'npm install' to allow the patched workspaces to link properly run: npm install - - name: Run TypeScript checks - run: npm run typecheck + - name: Build workspace packages + run: npm run build -w @guildpass/integration-client -w @guildpass/webhook-utils --if-present - - name: Run application build + - name: Run build run: npm run build - name: Run documentation build - run: npm run build:docs \ No newline at end of file + run: npm run build:docs + + - name: Run linting + run: npm run lint + + - name: Run typecheck + run: npm run typecheck \ No newline at end of file