fix: CI hardening, elegant demo embed and repo cleanup #12
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: Deploy Docs | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'docs/**' | |
| - '.github/workflows/docs.yml' | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| jobs: | |
| build: | |
| name: Build Docs | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20.x' | |
| cache: 'npm' | |
| - name: Install all workspace dependencies | |
| run: npm ci --workspaces | |
| - name: Run CLI tests with HTML coverage | |
| run: | | |
| npm test --workspace=packages/cli -- \ | |
| --coverage \ | |
| --coverageReporters=lcov \ | |
| --coverageReporters=html \ | |
| --coverageReporters=json-summary \ | |
| --coverageReporters=json \ | |
| --json --outputFile=coverage/test-results.json | |
| env: | |
| CI: true | |
| continue-on-error: true | |
| - name: Generate coverage report | |
| run: bash scripts/generate-coverage-report.sh | |
| continue-on-error: true | |
| - name: Install docs dependencies | |
| run: npm ci | |
| working-directory: docs | |
| - name: Build VitePress site | |
| run: npm run build | |
| working-directory: docs | |
| - name: Copy coverage HTML into Pages build | |
| run: | | |
| mkdir -p docs/.vitepress/dist/coverage-report | |
| if [ -d "packages/cli/coverage/lcov-report" ]; then | |
| cp -r packages/cli/coverage/lcov-report/. docs/.vitepress/dist/coverage-report/ | |
| echo "Coverage HTML copied to /coverage-report/" | |
| else | |
| echo "No lcov-report found — /coverage-report/ will be empty" | |
| fi | |
| - name: Upload Pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: docs/.vitepress/dist | |
| deploy: | |
| name: Deploy to GitHub Pages | |
| needs: build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |