Skip to content

fix: enable npm publishing for both release and workflow_dispatch tri… #4

fix: enable npm publishing for both release and workflow_dispatch tri…

fix: enable npm publishing for both release and workflow_dispatch tri… #4

Workflow file for this run

name: Continuous Integration
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
test:
name: Test on Node.js ${{ matrix.node-version }}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup 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 linting (if available)
run: |
if npm run lint --silent 2>/dev/null; then
npm run lint
else
echo "No linting script found, skipping..."
fi
continue-on-error: true
- name: Run core tests (CI-safe)
run: npm run test:ci
- name: Run test coverage
run: npm run test:ci:coverage
if: matrix.node-version == 18
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
if: matrix.node-version == 18
with:
file: ./coverage/lcov.info
flags: unittests
name: codecov-umbrella
continue-on-error: true
build:
name: Build Package
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build TypeScript
run: npm run build
- name: Verify build output
run: |
echo "Build directory contents:"
ls -la build/
echo "Verifying main entry point..."
node -e "
try {
require('./build/server.js');
console.log('✅ Build verification: SUCCESS');
} catch (error) {
console.error('❌ Build verification: FAILED');
console.error(error.message);
process.exit(1);
}
"
- name: Test package installation
run: |
npm pack
PACKAGE_FILE=$(ls *.tgz)
echo "Testing package installation: $PACKAGE_FILE"
mkdir test-install && cd test-install
npm init -y
npm install ../$PACKAGE_FILE
echo "✅ Package installation test: SUCCESS"
security:
name: Security Audit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run security audit
run: npm audit --audit-level=moderate
- name: Check for known vulnerabilities
run: |
if npm audit --audit-level=high --json | jq '.vulnerabilities | length' | grep -q '^0$'; then
echo "✅ No high-severity vulnerabilities found"
else
echo "❌ High-severity vulnerabilities detected"
npm audit --audit-level=high
exit 1
fi
continue-on-error: true