updated docs #87
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 ] | |
| pull_request: | |
| branches: [ main ] | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.x | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build project | |
| run: npm run build | |
| - name: Run tests | |
| run: npm test | |
| - name: Check build output exists | |
| run: | | |
| test -f dist/quikdown.umd.js | |
| test -f dist/quikdown.umd.min.js | |
| test -f dist/quikdown.esm.js | |
| test -f dist/quikdown.cjs | |
| test -f dist/quikdown_bd.umd.js | |
| test -f dist/quikdown_bd.esm.js | |
| test -f dist/quikdown_bd.cjs | |
| test -f dist/quikdown_edit.umd.js | |
| test -f dist/quikdown_edit.esm.js | |
| test -f dist/quikdown_edit.cjs | |
| test -f dist/quikdown_ast.esm.js | |
| test -f dist/quikdown_json.esm.js | |
| test -f dist/quikdown_yaml.esm.js | |
| test -f dist/quikdown_ast_html.esm.js | |
| test -f dist/quikdown_mcp.esm.js | |
| test -f dist/quikdown_mcp.cjs | |
| test -f dist/quikdown.d.ts | |
| test -f dist/quikdown_bd.d.ts | |
| test -f dist/quikdown_edit.d.ts | |
| test -f dist/quikdown_ast.d.ts | |
| test -f dist/quikdown_json.d.ts | |
| test -f dist/quikdown_yaml.d.ts | |
| test -f dist/quikdown_ast_html.d.ts | |
| test -f dist/quikdown_mcp.d.ts | |
| - name: Verify package exports and types | |
| run: npm run verify:package | |
| - name: Dry-run publish release steps | |
| run: | | |
| npm run build:all | |
| node tools/buildAirgapZip.cjs | |
| gzip -9 -k -f dist/quikdown_edit_standalone.esm.min.js dist/quikdown_edit_standalone.umd.min.js | |
| TAG="v$(node -p 'require("./package.json").version')" | |
| ASSETS=( | |
| dist/quikdown.umd.min.js | |
| dist/quikdown.esm.min.js | |
| dist/quikdown.cjs | |
| dist/quikdown_bd.umd.min.js | |
| dist/quikdown_bd.esm.min.js | |
| dist/quikdown_edit.umd.min.js | |
| dist/quikdown_edit_standalone.esm.min.js | |
| dist/quikdown_edit_standalone.umd.min.js | |
| dist/quikdown_edit_standalone.esm.min.js.gz | |
| dist/quikdown_edit_standalone.umd.min.js.gz | |
| "dist/quikdown-airgap-${TAG}.zip" | |
| dist/quikdown.light.min.css | |
| dist/quikdown.dark.min.css | |
| dist/quikdown.d.ts | |
| dist/quikdown_bd.d.ts | |
| dist/quikdown_edit.d.ts | |
| dist/quikdown_ast.d.ts | |
| dist/quikdown_json.d.ts | |
| dist/quikdown_yaml.d.ts | |
| dist/quikdown_ast_html.d.ts | |
| dist/quikdown_mcp.d.ts | |
| ) | |
| MISSING=0 | |
| for f in "${ASSETS[@]}"; do | |
| if [ ! -f "$f" ]; then echo "MISSING: $f"; MISSING=$((MISSING+1)); fi | |
| done | |
| if [ "$MISSING" -gt 0 ]; then echo "::error::$MISSING publish release asset(s) missing"; exit 1; fi | |
| echo "All ${#ASSETS[@]} release assets verified." | |
| # Trigger publish: runs only on push to main when the version is new. | |
| trigger-publish: | |
| needs: build | |
| if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| actions: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.x | |
| - name: Read version from package.json | |
| id: version | |
| run: echo "version=v$(node -p 'require("./package.json").version')" >> "$GITHUB_OUTPUT" | |
| - name: Check if tag already exists on origin | |
| id: tag_exists | |
| run: | | |
| TAG="${{ steps.version.outputs.version }}" | |
| if git ls-remote --tags origin "$TAG" | grep -q .; then | |
| echo "exists=true" >> "$GITHUB_OUTPUT" | |
| echo "::notice::Tag $TAG already exists — not a release commit." | |
| else | |
| echo "exists=false" >> "$GITHUB_OUTPUT" | |
| echo "Tag $TAG is new — will trigger publish." | |
| fi | |
| - name: Trigger publish workflow | |
| if: steps.tag_exists.outputs.exists == 'false' | |
| run: | | |
| gh workflow run publish.yml \ | |
| -f tag="${{ steps.version.outputs.version }}" \ | |
| -f sha="${{ github.sha }}" | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |