File tree Expand file tree Collapse file tree 2 files changed +59
-0
lines changed Expand file tree Collapse file tree 2 files changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Generate PDFs on Release
2+
3+ on :
4+ release :
5+ types : [created, published]
6+
7+ jobs :
8+ generate-pdfs :
9+ runs-on : ubuntu-latest
10+ permissions :
11+ contents : write
12+
13+ steps :
14+ - name : Checkout repository
15+ uses : actions/checkout@v4
16+
17+ - name : Set up Python
18+ uses : actions/setup-python@v5
19+ with :
20+ python-version : ' 3.11'
21+
22+ - name : Install dependencies
23+ run : |
24+ sudo apt-get update
25+ sudo apt-get install -y pandoc texlive-xetex texlive-fonts-recommended texlive-plain-generic
26+ pip install jupyter==1.1.1 nbconvert==7.16.6
27+
28+ - name : Convert notebooks to PDF
29+ run : |
30+ mkdir -p pdfs
31+ shopt -s nullglob
32+ notebooks=(*.ipynb)
33+ if [ ${#notebooks[@]} -eq 0 ]; then
34+ echo "No notebooks found to convert"
35+ exit 0
36+ fi
37+ for notebook in "${notebooks[@]}"; do
38+ echo "Converting $notebook to PDF..."
39+ jupyter nbconvert --to pdf "$notebook" --output-dir=pdfs || echo "Warning: Failed to convert $notebook"
40+ done
41+
42+ - name : Upload PDFs to release
43+ env :
44+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
45+ run : |
46+ shopt -s nullglob
47+ pdfs=(pdfs/*.pdf)
48+ if [ ${#pdfs[@]} -eq 0 ]; then
49+ echo "No PDFs found to upload"
50+ exit 0
51+ fi
52+ for pdf in "${pdfs[@]}"; do
53+ echo "Uploading $pdf to release..."
54+ gh release upload ${{ github.event.release.tag_name }} "$pdf" --clobber
55+ done
Original file line number Diff line number Diff line change @@ -27,3 +27,7 @@ server/node_modules
2727server /package-lock.json
2828
2929.ipynb_checkpoints /
30+
31+ # PDF files (generated by CI/CD)
32+ * .pdf
33+ pdfs /
You can’t perform that action at this time.
0 commit comments