Curriculum polish: lesson descriptions and structure #75
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 to GitHub Pages | |
| on: | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| # Allow only one concurrent deployment. | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: true | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Download Surfer assets | |
| run: scripts/setup-surfer.sh | |
| - name: Download Pyodide assets | |
| run: scripts/setup-pyodide.sh | |
| - name: Download CIRCT wasm artifacts | |
| # Artifacts are stored in a GitHub Release named 'circt-wasm'. | |
| # To publish them locally, run: | |
| # gh release create circt-wasm --title "CIRCT WASM artifacts" \ | |
| # static/circt/circt-{bmc,sim,sim-vpi,verilog,lec}.{js,wasm} \ | |
| # /tmp/uvm-core.tar.gz | |
| # where /tmp/uvm-core.tar.gz is created by: | |
| # tar -czf /tmp/uvm-core.tar.gz -C static/circt uvm-core | |
| # The build proceeds without them; simulation features will be | |
| # unavailable but the rest of the tutorial still works. | |
| run: | | |
| mkdir -p static/circt | |
| unpack_uvm_bundle_if_present() { | |
| if [ -f static/circt/uvm-core.tar.gz ]; then | |
| rm -rf static/circt/uvm-core | |
| tar -xzf static/circt/uvm-core.tar.gz -C static/circt | |
| fi | |
| } | |
| have_uvm_bundle() { | |
| [ -f static/circt/uvm-core/uvm-manifest.json ] | |
| } | |
| if gh release download circt-wasm \ | |
| --repo "$GITHUB_REPOSITORY" \ | |
| -D static/circt \ | |
| --clobber 2>/dev/null; then | |
| unpack_uvm_bundle_if_present | |
| echo "CIRCT artifacts downloaded from release 'circt-wasm'" | |
| ls -lh static/circt/ | |
| if have_uvm_bundle; then | |
| echo "UVM runtime bundle found" | |
| else | |
| echo "::notice::UVM runtime bundle missing (uvm-manifest.json not found); UVM lessons may fail." | |
| fi | |
| else | |
| echo "::notice::No 'circt-wasm' release found; simulation features will be unavailable." | |
| fi | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build | |
| run: npm run build | |
| env: | |
| VITE_BASE: /sv-tutorial/ | |
| - uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: build | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |