Skip to content

chore: add roadmap to readme #5

chore: add roadmap to readme

chore: add roadmap to readme #5

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
test:
name: Test & Build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
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
run: npm run lint
- name: Run tests
run: npm test
- name: Build extension
run: npm run build
- name: Verify build artifacts
run: |
test -d dist || (echo "dist directory not created" && exit 1)
test -f dist/extension.js || (echo "extension.js not built" && exit 1)
echo "Build verification passed"
coverage:
name: Test Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests with coverage
run: npm run test:coverage
- name: Upload coverage reports
uses: codecov/codecov-action@v3
with:
file: ./coverage/lcov.info
fail_ci_if_error: false
verbose: true
package:
name: Package Extension
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: 20.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Create release directory
run: mkdir -p release
- name: Package extension
run: npm run package
- name: Verify package
run: |
test -f release/*.vsix || (echo "VSIX package not created in release/ directory" && exit 1)
ls -la release/
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: vsix-package
path: "release/*.vsix"
retention-days: 30
validate-manifest:
name: Validate Manifest
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Validate package.json
run: |
# Check required fields
node -e "
const pkg = require('./package.json');
const required = ['name', 'displayName', 'description', 'version', 'engines', 'main', 'contributes'];
const missing = required.filter(field => !pkg[field]);
if (missing.length > 0) {
console.error('Missing required fields:', missing);
process.exit(1);
}
console.log('✓ All required package.json fields present');
"
- name: Validate localization files
run: |
# Check that all referenced localization keys exist
test -f package.nls.json || (echo "package.nls.json missing" && exit 1)
echo "✓ Base localization file exists"
# Count localization files
nls_count=$(ls package.nls.*.json 2>/dev/null | wc -l)
echo "✓ Found $nls_count translation files"
- name: Validate TypeScript config
run: |
test -f tsconfig.json || (echo "tsconfig.json missing" && exit 1)
echo "✓ TypeScript configuration exists"
- name: Validate Biome config
run: |
test -f biome.json || (echo "biome.json missing" && exit 1)
echo "✓ Biome configuration exists"
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: 20.x
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run security audit
run: npm audit --audit-level=moderate
- name: Check for known vulnerabilities
run: |
# This will fail CI if high/critical vulnerabilities are found
npm audit --audit-level=high --production