chore: add roadmap to readme #5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |