-
-
Notifications
You must be signed in to change notification settings - Fork 4
140 lines (139 loc) · 5.26 KB
/
publish.yml
File metadata and controls
140 lines (139 loc) · 5.26 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
136
137
138
139
140
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.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@v9
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.
# # rm -r _build/.doctrees
- name: Build HTML
shell: bash -l {0}
run: |
jb build lectures --path-output ./
# 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@v2
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@v3.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@v4
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