Skip to content

Commit 633f095

Browse files
authored
Merge pull request #5 from hanamai-org/feature/pdf-gen
Feature/pdf gen
2 parents 77c7f67 + d127d4d commit 633f095

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ server/node_modules
2727
server/package-lock.json
2828

2929
.ipynb_checkpoints/
30+
31+
# PDF files (generated by CI/CD)
32+
*.pdf
33+
pdfs/

0 commit comments

Comments
 (0)