CI Migration: Use Composite Actions #14
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: Build HTML [using jupyter-book] | |
| on: [pull_request] | |
| jobs: | |
| preview: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| # Use unified composite action for complete environment setup | |
| - name: Setup Complete Lecture Environment | |
| uses: quantecon/actions/setup-lecture-env-full@main | |
| with: | |
| python-version: '3.13' | |
| environment-file: 'environment.yml' | |
| latex-requirements-file: 'latex-requirements.txt' | |
| environment-name: 'quantecon' | |
| - name: Graphics Support #TODO: Review if graphviz is needed | |
| run: | | |
| sudo apt-get -qq update && sudo apt-get install -y graphviz | |
| - name: Display Conda Environment Versions | |
| shell: bash -l {0} | |
| run: conda list | |
| - name: Display Pip Versions | |
| shell: bash -l {0} | |
| run: pip list | |
| - name: Download "build" folder (cache) | |
| uses: dawidd6/action-download-artifact@v11 | |
| with: | |
| workflow: cache.yml | |
| branch: main | |
| name: build-cache | |
| path: _build | |
| # Build Assets (Download Notebooks and PDF via LaTeX) | |
| # Use composite action for PDF build | |
| - name: Build PDF from LaTeX | |
| uses: quantecon/actions/build-lectures@main | |
| with: | |
| builder: 'pdflatex' | |
| source-dir: 'lectures' | |
| extra-args: '-n --keep-going' | |
| - name: Copy PDF to HTML output | |
| run: | | |
| mkdir -p _build/html/_pdf | |
| cp -u _build/latex/*.pdf _build/html/_pdf | |
| - name: Upload Execution Reports (LaTeX) | |
| uses: actions/upload-artifact@v5 | |
| if: failure() | |
| with: | |
| name: execution-reports-latex | |
| path: _build/latex/reports | |
| # Use composite action for notebook build | |
| - name: Build Download Notebooks (sphinx-tojupyter) | |
| uses: quantecon/actions/build-lectures@main | |
| with: | |
| builder: 'jupyter' | |
| source-dir: 'lectures' | |
| - name: Copy Notebooks to HTML output | |
| run: | | |
| mkdir -p _build/html/_notebooks | |
| cp -u _build/jupyter/*.ipynb _build/html/_notebooks | |
| # Build HTML (Website) | |
| # BUG: rm .doctrees to remove `sphinx` rendering issues for ipywidget mimetypes | |
| # and clear the sphinx cache for building final HTML documents. | |
| - name: Build HTML | |
| run: | | |
| rm -r _build/.doctrees | |
| # Use composite action for HTML build | |
| - name: Build HTML (Jupyter Book) | |
| uses: quantecon/actions/build-lectures@main | |
| with: | |
| builder: 'html' | |
| source-dir: 'lectures' | |
| extra-args: '-nW --keep-going' | |
| - name: Upload Execution Reports (HTML) | |
| uses: actions/upload-artifact@v5 | |
| if: failure() | |
| with: | |
| name: execution-reports-html | |
| path: _build/html/reports | |
| # Use composite action for Netlify deployment | |
| - name: Preview Deploy to Netlify | |
| uses: quantecon/actions/deploy-netlify@main | |
| with: | |
| build-dir: '_build/html/' | |
| netlify-auth-token: ${{ secrets.NETLIFY_AUTH_TOKEN }} | |
| netlify-site-id: ${{ secrets.NETLIFY_SITE_ID }} | |
| production: 'false' | |
| message: 'Preview Deploy from GitHub Actions' |