Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
169 changes: 164 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,12 +173,131 @@ jobs:
path: dist/
retention-days: 1

test:
name: Test
timeout-minutes: 15
# Detect which packages changed (with dependency awareness)
detect-changes:
name: Detect Changes
runs-on: ubuntu-latest
outputs:
core: ${{ steps.filter.outputs.core }}
cli: ${{ steps.filter.outputs.cli }}
mcp: ${{ steps.filter.outputs.mcp }}
root: ${{ steps.filter.outputs.root }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
core:
- 'packages/tm-core/**'
- 'package-lock.json'
- 'tsconfig.json'
- 'vitest.workspace.ts'
Comment on lines +194 to +198
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for vitest config files at repo root
fd -d 1 'vitest' --type f

Repository: eyaltoledano/claude-task-master

Length of output: 142


Update CI workflow to reference correct vitest config file.

Line 198 references vitest.workspace.ts, which does not exist in the repository. The actual file is vitest.config.ts. Update this line to reference the correct filename.

🤖 Prompt for AI Agents
In @.github/workflows/ci.yml around lines 194 - 198, In the CI workflow 'core'
file-glob list update the incorrect filename: replace the non-existent
'vitest.workspace.ts' entry with the actual config file name 'vitest.config.ts'
so the workflow references the correct Vitest config; edit the list containing
'packages/tm-core/**', 'package-lock.json', 'tsconfig.json' and change the
'vitest.workspace.ts' item to 'vitest.config.ts'.

cli:
- 'apps/cli/**'
- 'packages/tm-core/**'
- 'package-lock.json'
mcp:
- 'apps/mcp/**'
- 'packages/tm-core/**'
- 'package-lock.json'
root:
- 'src/**'
- 'tests/**'
- 'package.json'
- 'package-lock.json'
- 'jest.config.*'

# Test @tm/core (unit + integration)
test-core:
name: Test @tm/core
timeout-minutes: 10
runs-on: ubuntu-latest
needs: [install, detect-changes, build]
if: needs.detect-changes.outputs.core == 'true'
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- name: Restore node_modules cache
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}

- name: Install dependencies
run: npm ci
if: steps.cache-node-modules.outputs.cache-hit != 'true'
timeout-minutes: 5

- name: Unit Tests
run: npm run test:unit -w @tm/core
env:
NODE_ENV: test
CI: true
FORCE_COLOR: 1

- name: Integration Tests
run: npm run test:integration -w @tm/core
env:
NODE_ENV: test
CI: true
FORCE_COLOR: 1

# Test @tm/cli (unit + integration)
test-cli:
name: Test @tm/cli
timeout-minutes: 10
runs-on: ubuntu-latest
needs: [install, detect-changes, build]
if: needs.detect-changes.outputs.cli == 'true'
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- name: Restore node_modules cache
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}

- name: Install dependencies
run: npm ci
if: steps.cache-node-modules.outputs.cache-hit != 'true'
timeout-minutes: 5

- name: Unit Tests
run: npm run test:unit -w @tm/cli
env:
NODE_ENV: test
CI: true
FORCE_COLOR: 1

- name: Integration Tests
run: npm run test:integration -w @tm/cli
env:
NODE_ENV: test
CI: true
FORCE_COLOR: 1

# Test @tm/mcp (unit + integration)
test-mcp:
name: Test @tm/mcp
timeout-minutes: 10
runs-on: ubuntu-latest
needs: [format-check, typecheck, build, changeset-validation]
if: always() && !cancelled() && !contains(needs.*.result, 'failure')
needs: [install, detect-changes, build]
if: needs.detect-changes.outputs.mcp == 'true'
steps:
- uses: actions/checkout@v4

Expand All @@ -194,8 +313,48 @@ jobs:
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}

- name: Install dependencies
run: npm ci
if: steps.cache-node-modules.outputs.cache-hit != 'true'
timeout-minutes: 5

- name: Unit Tests
run: npm run test:unit -w @tm/mcp
env:
NODE_ENV: test
CI: true
FORCE_COLOR: 1

- name: Integration Tests
run: npm run test:integration -w @tm/mcp
env:
NODE_ENV: test
CI: true
FORCE_COLOR: 1

# Test root package (legacy Jest tests)
test-root:
name: Test Root
timeout-minutes: 15
runs-on: ubuntu-latest
needs: [format-check, typecheck, build, changeset-validation, detect-changes]
if: always() && !cancelled() && !contains(needs.*.result, 'failure') && needs.detect-changes.outputs.root == 'true'
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}

- name: Restore node_modules cache
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: node-modules-${{ runner.os }}-node${{ env.NODE_VERSION }}-${{ hashFiles('package-lock.json') }}

- name: Install dependencies
run: npm ci
if: steps.cache-node-modules.outputs.cache-hit != 'true'
timeout-minutes: 5

- name: Download build artifacts
Expand Down
4 changes: 2 additions & 2 deletions apps/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"test:unit": "vitest run '**/*.spec.ts'",
"test:integration": "vitest run '**/*.test.ts'",
"test:unit": "vitest run --config ../../vitest.unit.config.ts",
"test:integration": "vitest run --config ../../vitest.integration.config.ts",
"test:e2e": "vitest run --dir tests/e2e",
"test:ci": "vitest run --coverage --reporter=dot"
},
Expand Down
28 changes: 0 additions & 28 deletions apps/cli/vitest.config.ts

This file was deleted.

4 changes: 2 additions & 2 deletions apps/mcp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"test:unit": "vitest run '**/*.spec.ts'",
"test:integration": "vitest run '**/*.test.ts'",
"test:unit": "vitest run --config ../../vitest.unit.config.ts",
"test:integration": "vitest run --config ../../vitest.integration.config.ts",
"test:ci": "vitest run --coverage --reporter=dot"
},
"dependencies": {
Expand Down
21 changes: 0 additions & 21 deletions apps/mcp/vitest.config.ts

This file was deleted.

Loading