Renumber Job Search VI-X, and point baseurl at the live site (#273) #15
Workflow file for this run
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 & Publish to GH-PAGES | |
| on: | |
| push: | |
| tags: | |
| - 'publish*' | |
| jobs: | |
| publish: | |
| if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Anaconda | |
| uses: conda-incubator/setup-miniconda@v4 | |
| with: | |
| auto-update-conda: true | |
| auto-activate-base: true | |
| miniconda-version: 'latest' | |
| python-version: "3.13" | |
| environment-file: environment.yml | |
| activate-environment: quantecon | |
| - name: Install latex dependencies | |
| run: | | |
| sudo apt-get -qq update | |
| sudo apt-get install -y \ | |
| texlive-latex-recommended \ | |
| texlive-latex-extra \ | |
| texlive-fonts-recommended \ | |
| texlive-fonts-extra \ | |
| texlive-xetex \ | |
| latexmk \ | |
| xindy \ | |
| dvipng \ | |
| cm-super | |
| - 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@v23 | |
| with: | |
| workflow: cache.yml | |
| branch: main | |
| name: build-cache | |
| path: _build | |
| # The artifact is a whole `_build` tree, including the Sphinx environment | |
| # (`_build/.doctrees`) from the run that produced it. That environment holds | |
| # cross-document state — the resolved toctree, and the section numbering | |
| # derived from it — so reusing it makes every page render its navigation | |
| # from the table of contents as it stood when the artifact was built, no | |
| # matter how current the sources are. The part worth keeping is | |
| # `_build/.jupyter_cache`, which is the expensive notebook execution. | |
| # `ci.yml` already does this; see issue #270. | |
| - name: Clear stale Sphinx environment | |
| shell: bash -l {0} | |
| run: rm -rf _build/.doctrees _build/html | |
| # # Build Assets (Download Notebooks and PDF via LaTeX) | |
| # - name: Build PDF from LaTeX | |
| # shell: bash -l {0} | |
| # run: | | |
| # jb build lectures --builder pdflatex --path-output ./ -n --keep-going | |
| # - name: Copy LaTeX PDF for GH-PAGES | |
| # shell: bash -l {0} | |
| # run: | | |
| # mkdir -p _build/html/_pdf | |
| # cp -u _build/latex/*.pdf _build/html/_pdf | |
| - name: Build Download Notebooks (sphinx-tojupyter) | |
| shell: bash -l {0} | |
| run: | | |
| jb build lectures --path-output ./ --builder=custom --custom-builder=jupyter | |
| - name: Copy Download Notebooks for GH-PAGES | |
| shell: bash -l {0} | |
| run: | | |
| mkdir -p _build/html/_notebooks | |
| cp -u _build/jupyter/*.ipynb _build/html/_notebooks | |
| # Build HTML (Website) | |
| # The Sphinx environment restored from the cache artifact is cleared right | |
| # after the download, above, so this build reads every source afresh. | |
| - name: Build HTML | |
| shell: bash -l {0} | |
| run: | | |
| jb build lectures --path-output ./ -n -W --keep-going | |
| # Create HTML archive for release assets | |
| - name: Create HTML archive | |
| shell: bash -l {0} | |
| run: | | |
| tar -czf lecture-python-zh-cn-html-${{ github.ref_name }}.tar.gz -C _build/html . | |
| sha256sum lecture-python-zh-cn-html-${{ github.ref_name }}.tar.gz > html-checksum.txt | |
| # Create metadata manifest | |
| cat > html-manifest.json << EOF | |
| { | |
| "tag": "${{ github.ref_name }}", | |
| "commit": "${{ github.sha }}", | |
| "timestamp": "$(date -Iseconds)", | |
| "size_mb": $(du -sm _build/html | cut -f1), | |
| "file_count": $(find _build/html -type f | wc -l) | |
| } | |
| EOF | |
| - name: Upload archives to release | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| files: | | |
| lecture-python-zh-cn-html-${{ github.ref_name }}.tar.gz | |
| html-checksum.txt | |
| html-manifest.json | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Deploy to Netlify | |
| uses: nwtgck/actions-netlify@v4.0 | |
| with: | |
| publish-dir: '_build/html/' | |
| production-branch: main | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| deploy-message: "Deploy from GitHub Actions" | |
| env: | |
| NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} | |
| NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} | |
| - name: Deploy website to gh-pages | |
| uses: peaceiris/actions-gh-pages@v4 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: _build/html/ | |
| # cname: intro-cn.quantecon.org | |
| - name: Upload "_build" folder (publish) | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: build-publish | |
| path: _build | |
| # # Sync notebooks | |
| # - name: Prepare lecture-python-intro.notebooks sync | |
| # shell: bash -l {0} | |
| # run: | | |
| # mkdir -p _build/lecture-python-intro.notebooks | |
| # cp -a _notebook_repo/. _build/lecture-python-intro.notebooks | |
| # cp _build/jupyter/*.ipynb _build/lecture-python-intro.notebooks | |
| # ls -a _build/lecture-python-intro.notebooks | |
| # - name: Commit latest notebooks to lecture-python-intro.notebooks | |
| # uses: cpina/github-action-push-to-another-repository@main | |
| # env: | |
| # API_TOKEN_GITHUB: ${{ secrets.QUANTECON_SERVICES_PAT }} | |
| # with: | |
| # source-directory: '_build/lecture-python-intro.notebooks/' | |
| # destination-repository-username: 'QuantEcon' | |
| # destination-repository-name: 'lecture-python-intro.notebooks' | |
| # commit-message: 'auto publishing updates to notebooks' | |
| # destination-github-username: 'quantecon-services' | |
| # user-email: services@quantecon.org |