logs: pale tool-tag lines so program output stands out #102
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 MOX wasm artifacts | |
| # Artifacts are stored in a GitHub Release named 'mox-wasm'. | |
| # To publish them locally, run: | |
| # gh release create mox-wasm --title "MOX WASM artifacts" \ | |
| # static/mox/mox-{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/mox uvm-core | |
| # The build proceeds without them; simulation features will be | |
| # unavailable but the rest of the tutorial still works. | |
| run: | | |
| mkdir -p static/mox | |
| unpack_uvm_bundle_if_present() { | |
| # Match uvm-core.tar.gz as well as older mis-named bundles such as | |
| # uvm-core.XXXXXX.tar.gz (a past mktemp-template bug), newest first. | |
| local bundle | |
| bundle="$(ls -t static/mox/uvm-core*.tar.gz 2>/dev/null | head -1)" | |
| if [ -n "$bundle" ]; then | |
| rm -rf static/mox/uvm-core | |
| tar -xzf "$bundle" -C static/mox | |
| fi | |
| } | |
| have_uvm_bundle() { | |
| [ -f static/mox/uvm-core/uvm-manifest.json ] | |
| } | |
| if gh release download mox-wasm \ | |
| --repo "$GITHUB_REPOSITORY" \ | |
| -D static/mox \ | |
| --clobber 2>/dev/null; then | |
| unpack_uvm_bundle_if_present | |
| # Apply the browser-compatibility patches in-place. This makes the | |
| # deploy self-healing: the release can hold raw (or partially | |
| # patched) tool artifacts and CI rewrites the Node-only NODERAWFS | |
| # path/fs + callMain glue to a browser/MEMFS-safe form. Idempotent, | |
| # so already-patched artifacts pass through unchanged. Without this, | |
| # mox-verilog/mox-bmc fail silently in the browser worker. | |
| bash scripts/patch-mox-browser.sh static/mox | |
| echo "MOX artifacts downloaded from release 'mox-wasm'" | |
| ls -lh static/mox/ | |
| 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 'mox-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 |