Merge pull request #10 from QuantEcon/maint-19mar #6
Workflow file for this run
This file contains 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@v4 | |
- name: Setup Anaconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
auto-activate-base: true | |
miniconda-version: 'latest' | |
python-version: "3.11" | |
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@v3 | |
with: | |
workflow: cache.yml | |
branch: main | |
name: build-cache | |
path: _build | |
# 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) | |
# BUG: rm .doctress to remove `sphinx` rendering issues for ipywidget mimetypes | |
# and clear the sphinx cache for building final HTML documents. | |
- name: Build HTML | |
shell: bash -l {0} | |
run: | | |
rm -r _build/.doctrees | |
jb build lectures --path-output ./ | |
- name: Deploy to Netlify | |
uses: nwtgck/actions-netlify@v2 | |
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@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: _build/html/ | |
cname: eqm.quantecon.org | |
- name: Upload "_build" folder (cache) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-publish | |
path: _build | |
# Sync notebooks | |
- name: Prepare lecture-eqm.notebooks sync | |
shell: bash -l {0} | |
run: | | |
mkdir -p _build/lecture-eqm.notebooks | |
cp -a _notebook_repo/. _build/lecture-eqm.notebooks | |
cp _build/jupyter/*.ipynb _build/lecture-eqm.notebooks | |
ls -a _build/lecture-eqm.notebooks | |
- name: Commit latest notebooks to lecture-eqm.notebooks | |
uses: cpina/github-action-push-to-another-repository@main | |
env: | |
API_TOKEN_GITHUB: ${{ secrets.QUANTECON_SERVICES_PAT }} | |
with: | |
source-directory: '_build/lecture-eqm.notebooks/' | |
destination-repository-username: 'QuantEcon' | |
destination-repository-name: 'lecture-eqm.notebooks' | |
commit-message: 'auto publishing updates to notebooks' | |
destination-github-username: 'quantecon-services' | |
user-email: [email protected] |