feat(practice): mock exams + auto-rebuild on cert markdown edits (931… #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: Deploy practice quiz to GitHub Pages | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'practice/**' | |
| - 'certifications/**/practice-questions/**' | |
| - 'certifications/**/mock-exam/**' | |
| - 'certifications/**/mock-exam-2/**' | |
| - '.github/workflows/deploy-practice.yml' | |
| workflow_dispatch: | |
| env: | |
| # Opt into Node.js 24 for all JavaScript actions ahead of the June 2026 | |
| # deprecation deadline. See lint.yml for the same rationale. | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| jobs: | |
| build: | |
| name: Build Pages artifact (practice/) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Rebuild question banks from current cert markdown | |
| # Source of truth is certifications/**/{practice-questions,mock-exam,mock-exam-2}/*.md. | |
| # We regenerate practice/data/*.json on every deploy so the live site | |
| # always reflects the latest committed cert content, even if the | |
| # author forgot to re-run build.py locally before pushing. | |
| # build.py uses Python 3 stdlib only — no setup-python step needed | |
| # because ubuntu-latest ships with python3 pre-installed. | |
| run: python3 practice/build.py | |
| - name: Setup Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Disable Jekyll processing | |
| run: touch practice/.nojekyll | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: practice/ | |
| deploy: | |
| name: Deploy to GitHub Pages | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |