-
-
Notifications
You must be signed in to change notification settings - Fork 0
136 lines (133 loc) · 5.1 KB
/
publish.yml
File metadata and controls
136 lines (133 loc) · 5.1 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
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@v6
with:
fetch-depth: 0
- 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
# Download Build Cache from cache.yml
- name: Download "build" folder (cache)
uses: dawidd6/action-download-artifact@v18
with:
workflow: cache.yml
branch: main
name: build-cache
path: _build
# TODO: pdf support
# # Build Assets (Download Notebooks, PDF via LaTeX)
# - name: Build PDF from LaTeX
# shell: bash -l {0}
# run: |
# jb build lectures --builder pdflatex --path-output ./ -n -W --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
# TODO: download notebook support
# - name: Build Download Notebooks (sphinx-tojupyter)
# shell: bash -l {0}
# run: |
# jb build lectures --path-output ./ --builder=custom --custom-builder=jupyter -n -W --keep-going
# zip -r download-notebooks.zip _build/jupyter
# - uses: actions/upload-artifact@v4
# with:
# name: download-notebooks
# path: download-notebooks.zip
# - 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
# Final Build of HTML (with assets)
- 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-programming-fa-html-${{ github.ref_name }}.tar.gz -C _build/html .
sha256sum lecture-python-programming-fa-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-programming-fa-html-${{ github.ref_name }}.tar.gz
html-checksum.txt
html-manifest.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Deploy website to gh-pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: _build/html/
# cname: python-programming-fa.quantecon.org
# TODO: download notebook support
# - name: Prepare lecture-python-programming.notebooks sync
# shell: bash -l {0}
# run: |
# mkdir -p _build/lecture-python-programming.notebooks
# cp -a _notebook_repo/. _build/lecture-python-programming.notebooks
# cp _build/jupyter/*.ipynb _build/lecture-python-programming.notebooks
# ls -a _build/lecture-python-programming.notebooks
# - name: Commit notebooks to lecture-python-programming.notebooks
# shell: bash -l {0}
# env:
# QE_SERVICES_PAT: ${{ secrets.QUANTECON_SERVICES_PAT }}
# run: |
# git clone https://quantecon-services:$QE_SERVICES_PAT@github.com/quantecon/lecture-python-programming.notebooks
# cp _build/lecture-python-programming.notebooks/*.ipynb lecture-python-programming.notebooks
# cd lecture-python-programming.notebooks
# git config user.name "QuantEcon Services"
# git config user.email "admin@quantecon.org"
# git add *.ipynb
# git commit -m "auto publishing updates to notebooks"
# git push origin main