Skip to content

Commit 81bb336

Browse files
committed
feat: Add GitHub Pages deployment workflow and update gitignore with common development patterns.
1 parent 6382e23 commit 81bb336

2 files changed

Lines changed: 335 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- master
8+
- quarto-book
9+
workflow_dispatch:
10+
11+
permissions:
12+
contents: read
13+
pages: write
14+
id-token: write
15+
16+
concurrency:
17+
group: "pages"
18+
cancel-in-progress: false
19+
20+
jobs:
21+
deploy:
22+
environment:
23+
name: github-pages
24+
url: ${{ steps.deployment.outputs.page_url }}
25+
runs-on: ubuntu-latest
26+
steps:
27+
- name: Checkout
28+
uses: actions/checkout@v4
29+
30+
- name: Setup Pixi
31+
uses: prefix-dev/setup-pixi@v0.8.1
32+
with:
33+
pixi-version: v0.39.0
34+
35+
- name: Render Quarto Book
36+
run: |
37+
cd mybook
38+
pixi run quarto render
39+
40+
- name: Upload artifact
41+
uses: actions/upload-pages-artifact@v3
42+
with:
43+
path: mybook/_book
44+
45+
- name: Deploy to GitHub Pages
46+
id: deployment
47+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,291 @@
11
# pixi environments
22
.pixi/*
33
!.pixi/config.toml
4+
# Created by https://www.toptal.com/developers/gitignore/api/jupyternotebooks,macos,windows,linux,pythonvanilla,python
5+
# Edit at https://www.toptal.com/developers/gitignore?templates=jupyternotebooks,macos,windows,linux,pythonvanilla,python
6+
7+
### JupyterNotebooks ###
8+
# gitignore template for Jupyter Notebooks
9+
# website: http://jupyter.org/
10+
11+
.ipynb_checkpoints
12+
*/.ipynb_checkpoints/*
13+
14+
# IPython
15+
profile_default/
16+
ipython_config.py
17+
18+
# Remove previous ipynb_checkpoints
19+
# git rm -r .ipynb_checkpoints/
20+
21+
### Linux ###
22+
*~
23+
24+
# temporary files which can be created if a process still has a handle open of a deleted file
25+
.fuse_hidden*
26+
27+
# KDE directory preferences
28+
.directory
29+
30+
# Linux trash folder which might appear on any partition or disk
31+
.Trash-*
32+
33+
# .nfs files are created when an open file is removed but is still being accessed
34+
.nfs*
35+
36+
### macOS ###
37+
# General
38+
.DS_Store
39+
.AppleDouble
40+
.LSOverride
41+
42+
# Icon must end with two \r
43+
Icon
44+
45+
46+
# Thumbnails
47+
._*
48+
49+
# Files that might appear in the root of a volume
50+
.DocumentRevisions-V100
51+
.fseventsd
52+
.Spotlight-V100
53+
.TemporaryItems
54+
.Trashes
55+
.VolumeIcon.icns
56+
.com.apple.timemachine.donotpresent
57+
58+
# Directories potentially created on remote AFP share
59+
.AppleDB
60+
.AppleDesktop
61+
Network Trash Folder
62+
Temporary Items
63+
.apdisk
64+
65+
### macOS Patch ###
66+
# iCloud generated files
67+
*.icloud
68+
69+
### Python ###
70+
# Byte-compiled / optimized / DLL files
71+
__pycache__/
72+
*.py[cod]
73+
*$py.class
74+
75+
# C extensions
76+
*.so
77+
78+
# Distribution / packaging
79+
.Python
80+
build/
81+
develop-eggs/
82+
dist/
83+
downloads/
84+
eggs/
85+
.eggs/
86+
lib/
87+
lib64/
88+
parts/
89+
sdist/
90+
var/
91+
wheels/
92+
share/python-wheels/
93+
*.egg-info/
94+
.installed.cfg
95+
*.egg
96+
MANIFEST
97+
98+
# PyInstaller
99+
# Usually these files are written by a python script from a template
100+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
101+
*.manifest
102+
*.spec
103+
104+
# Installer logs
105+
pip-log.txt
106+
pip-delete-this-directory.txt
107+
108+
# Unit test / coverage reports
109+
htmlcov/
110+
.tox/
111+
.nox/
112+
.coverage
113+
.coverage.*
114+
.cache
115+
nosetests.xml
116+
coverage.xml
117+
*.cover
118+
*.py,cover
119+
.hypothesis/
120+
.pytest_cache/
121+
cover/
122+
123+
# Translations
124+
*.mo
125+
*.pot
126+
127+
# Django stuff:
128+
*.log
129+
local_settings.py
130+
db.sqlite3
131+
db.sqlite3-journal
132+
133+
# Flask stuff:
134+
instance/
135+
.webassets-cache
136+
137+
# Scrapy stuff:
138+
.scrapy
139+
140+
# Sphinx documentation
141+
docs/_build/
142+
143+
# PyBuilder
144+
.pybuilder/
145+
target/
146+
147+
# Jupyter Notebook
148+
149+
# IPython
150+
151+
# pyenv
152+
# For a library or package, you might want to ignore these files since the code is
153+
# intended to run in multiple environments; otherwise, check them in:
154+
# .python-version
155+
156+
# pipenv
157+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
158+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
159+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
160+
# install all needed dependencies.
161+
#Pipfile.lock
162+
163+
# poetry
164+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
165+
# This is especially recommended for binary packages to ensure reproducibility, and is more
166+
# commonly ignored for libraries.
167+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
168+
#poetry.lock
169+
170+
# pdm
171+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
172+
#pdm.lock
173+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
174+
# in version control.
175+
# https://pdm.fming.dev/#use-with-ide
176+
.pdm.toml
177+
178+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
179+
__pypackages__/
180+
181+
# Celery stuff
182+
celerybeat-schedule
183+
celerybeat.pid
184+
185+
# SageMath parsed files
186+
*.sage.py
187+
188+
# Environments
189+
.env
190+
.venv
191+
env/
192+
venv/
193+
ENV/
194+
env.bak/
195+
venv.bak/
196+
197+
# Spyder project settings
198+
.spyderproject
199+
.spyproject
200+
201+
# Rope project settings
202+
.ropeproject
203+
204+
# mkdocs documentation
205+
/site
206+
207+
# mypy
208+
.mypy_cache/
209+
.dmypy.json
210+
dmypy.json
211+
212+
# Pyre type checker
213+
.pyre/
214+
215+
# pytype static type analyzer
216+
.pytype/
217+
218+
# Cython debug symbols
219+
cython_debug/
220+
221+
# PyCharm
222+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
223+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
224+
# and can be added to the global gitignore or merged into this file. For a more nuclear
225+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
226+
#.idea/
227+
228+
### Python Patch ###
229+
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
230+
poetry.toml
231+
232+
# ruff
233+
.ruff_cache/
234+
235+
# LSP config files
236+
pyrightconfig.json
237+
238+
### PythonVanilla ###
239+
# Byte-compiled / optimized / DLL files
240+
241+
# C extensions
242+
243+
# Distribution / packaging
244+
245+
# Installer logs
246+
247+
# Unit test / coverage reports
248+
249+
# Translations
250+
251+
# pyenv
252+
# For a library or package, you might want to ignore these files since the code is
253+
# intended to run in multiple environments; otherwise, check them in:
254+
# .python-version
255+
256+
# pipenv
257+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
258+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
259+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
260+
# install all needed dependencies.
261+
262+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
263+
264+
265+
### Windows ###
266+
# Windows thumbnail cache files
267+
Thumbs.db
268+
Thumbs.db:encryptable
269+
ehthumbs.db
270+
ehthumbs_vista.db
271+
272+
# Dump file
273+
*.stackdump
274+
275+
# Folder config file
276+
[Dd]esktop.ini
277+
278+
# Recycle Bin used on file shares
279+
$RECYCLE.BIN/
280+
281+
# Windows Installer files
282+
*.cab
283+
*.msi
284+
*.msix
285+
*.msm
286+
*.msp
287+
288+
# Windows shortcuts
289+
*.lnk
290+
291+
# End of https://www.toptal.com/developers/gitignore/api/jupyternotebooks,macos,windows,linux,pythonvanilla,python

0 commit comments

Comments
 (0)