Skip to main content
Glama

DollhouseMCP

by DollhouseMCP
core-build-test.ymlโ€ข6.44 kB
--- name: Core Build & Test on: push: branches: [main, develop] pull_request: branches: [main, develop] workflow_dispatch: permissions: contents: read env: NODE_OPTIONS: '--max-old-space-size=4096 --experimental-vm-modules' CI: true TEST_GITHUB_TOKEN: ${{ secrets.TEST_GITHUB_TOKEN }} jobs: core-test: name: Test (${{ matrix.os }}, Node ${{ matrix.node-version }}) runs-on: ${{ matrix.os }} timeout-minutes: 10 strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: ['20.x'] steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 1 - name: Fetch tags for signature verification shell: bash run: git fetch --tags --force - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' cache-dependency-path: package-lock.json - name: Set cross-platform TEST_PERSONAS_DIR shell: bash run: | # Use Node.js to create proper cross-platform path with escaped quotes for shell safety TEST_PERSONAS_DIR=$(node -e "console.log(require('path').join(process.argv[1], 'test-personas'))" "${{ github.workspace }}") echo "TEST_PERSONAS_DIR=$TEST_PERSONAS_DIR" >> $GITHUB_ENV echo "Set TEST_PERSONAS_DIR to: $TEST_PERSONAS_DIR" - name: Validate environment # Use bash for cross-platform compatibility (Windows/macOS/Linux) shell: bash run: | echo "๐Ÿ” Validating CI environment..." echo "TEST_PERSONAS_DIR: $TEST_PERSONAS_DIR" echo "NODE_OPTIONS: $NODE_OPTIONS" echo "CI: $CI" # Verify TEST_PERSONAS_DIR is set if [ -z "$TEST_PERSONAS_DIR" ]; then echo "โŒ TEST_PERSONAS_DIR is not set!" exit 1 fi # Display workspace info for debugging echo "GitHub workspace: ${{ github.workspace }}" echo "Runner OS: ${{ runner.os }}" echo "Current directory: $(pwd)" echo "โœ… Environment validation passed" # Temporarily disabled TypeScript cache to debug CI issues # - name: Cache TypeScript build # uses: actions/cache@v4 # with: # path: | # dist/ # build/ # *.tsbuildinfo # key: typescript-build-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('src/**/*.ts', 'tsconfig*.json', 'package.json', 'package-lock.json') }} # restore-keys: | # typescript-build-${{ runner.os }}-${{ matrix.node-version }}- # typescript-build-${{ runner.os }}- - name: Install dependencies run: npm ci - name: Build project run: npm run build - name: Debug file structure shell: bash run: | echo "=== Current directory ===" pwd echo "=== Node version ===" node --version echo "=== NPM version ===" npm --version echo "=== Root files ===" if ls jest.* >/dev/null 2>&1; then ls jest.*; else echo "No jest files found"; fi echo "=== Source files ===" if [ -d "src/update/" ]; then ls src/update/; else echo "src/update not found"; fi echo "=== Config files ===" if [ -d "src/config/" ]; then ls src/config/; else echo "src/config not found"; fi echo "=== Dist files ===" if [ -d "dist/update/" ]; then ls dist/update/; else echo "dist/update not found"; fi echo "=== Test files ===" if [ -d "test/__tests__/unit/auto-update/" ]; then ls test/__tests__/unit/auto-update/; else echo "auto-update tests not found"; fi echo "=== NODE_PATH ===" echo $NODE_PATH echo "=== Jest config ===" if [ -f "test/jest.config.cjs" ]; then cat test/jest.config.cjs; else echo "Jest config not found"; fi - name: Cache Jest uses: actions/cache@v4 with: path: | .jest-cache/ test/coverage/ node_modules/.cache/jest/ key: jest-cache-${{ runner.os }}-${{ matrix.node-version }}-${{ hashFiles('test/__tests__/**/*.ts', 'test/jest.config.*', 'src/**/*.ts', 'package.json', 'package-lock.json') }} restore-keys: | jest-cache-${{ runner.os }}-${{ matrix.node-version }}- jest-cache-${{ runner.os }}- - name: Clear Jest cache run: npx jest --clearCache - name: Run test suite (original method) id: original_tests run: npm test continue-on-error: true - name: Run performance tests (separate process) id: performance_tests run: npm run test:performance continue-on-error: true - name: Debug failed tests environment if: steps.original_tests.outcome == 'failure' shell: bash run: | echo "=== Original tests failed, debugging environment ===" echo "Current directory: $(pwd)" echo "Contents of current directory:" ls -la echo "=== Checking if package.json exists ===" if [ -f "package.json" ]; then echo "โœ“ package.json exists" echo "First 5 lines:" head -5 package.json else echo "โœ— package.json NOT FOUND" fi - name: Run compiled tests approach if: false # Temporarily disabled - see PR #845 # Original condition: if: steps.original_tests.outcome == 'failure' working-directory: ${{ github.workspace }} run: | echo "=== Running compiled test approach ===" echo "Explicitly setting working directory to: ${{ github.workspace }}" pwd # Build the tests first npm run build:test # Run the compiled tests using cross-env ./node_modules/.bin/cross-env NODE_OPTIONS='--experimental-vm-modules' ./node_modules/.bin/jest --config test/jest.config.compiled.cjs --ci --watchAll=false - name: Validation complete run: | echo "โœ… Core Build & Test Complete!" echo "Platform: ${{ matrix.os }}" echo "Node.js: ${{ matrix.node-version }}"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DollhouseMCP/DollhouseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server