-
-
Notifications
You must be signed in to change notification settings - Fork 32
135 lines (132 loc) · 4.91 KB
/
Copy pathpublish.yml
File metadata and controls
135 lines (132 loc) · 4.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: Build & Publish to GH Pages
on:
push:
tags:
- 'publish*'
permissions:
contents: write # upload release assets; Netlify commit comment
actions: read # dawidd6 download-artifact reads cache.yml's build-cache
statuses: write # Netlify commit status
pages: write # deploy to GitHub Pages
id-token: write # OIDC token for actions/deploy-pages
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
publish:
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs['page-url'] }}
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
# 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@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 }}
# Deploy to GitHub Pages + publish release assets (html archive, checksum, manifest)
- name: Deploy to GitHub Pages
id: deployment
uses: quantecon/actions/publish-gh-pages@v0.11.1
with:
build-dir: _build/html
cname: intro.quantecon.org
create-release-assets: 'true'
asset-name: 'lecture-python-intro-html'
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Upload "_build" folder (cache)
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