Skip to content

Commit 43ae7ca

Browse files
feat: stand up the FiberPath project hub site
Publish the org-pages site that owns the FiberPath published docs end-to-end: - index.html: minimal landing at / (seed of the project hub). - deploy.yml: build workflow that checks out fiberpath/fiberpath, builds its MkDocs docs (uv + .[docs], sync_gui_docs, mkdocs build --strict) into /fiberpath, assembles the landing at /, and deploys to GitHub Pages. Runs on push, daily schedule (to pick up upstream doc changes), and manual dispatch. The software docs stay authored and PR-validated in fiberpath/fiberpath; this repo handles assembly and publishing.
1 parent 043e59c commit 43ae7ca

4 files changed

Lines changed: 200 additions & 1 deletion

File tree

‎.github/workflows/deploy.yml‎

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Deploy site
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
# Pick up docs changes in fiberpath/fiberpath (no cross-repo push trigger yet).
8+
schedule:
9+
- cron: "0 6 * * *"
10+
11+
permissions:
12+
contents: read
13+
pages: write
14+
id-token: write
15+
16+
concurrency:
17+
group: pages
18+
cancel-in-progress: true
19+
20+
jobs:
21+
build:
22+
name: Build site
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout site (this repo)
26+
uses: actions/checkout@v4
27+
28+
- name: Checkout fiberpath/fiberpath
29+
uses: actions/checkout@v4
30+
with:
31+
repository: fiberpath/fiberpath
32+
path: fiberpath-src
33+
34+
- name: Set up Python
35+
uses: actions/setup-python@v5
36+
with:
37+
python-version: "3.11"
38+
39+
- name: Set up uv
40+
uses: astral-sh/setup-uv@v8.2.0
41+
with:
42+
enable-cache: true
43+
cache-dependency-glob: "fiberpath-src/pyproject.toml"
44+
45+
- name: Assemble site root
46+
run: |
47+
mkdir -p public
48+
cp index.html public/
49+
50+
- name: Build FiberPath docs into /fiberpath
51+
working-directory: fiberpath-src
52+
run: |
53+
uv venv
54+
uv pip install ".[docs]"
55+
uv run python scripts/sync_gui_docs.py
56+
uv run mkdocs build --strict --site-dir "$GITHUB_WORKSPACE/public/fiberpath"
57+
58+
- name: Upload Pages artifact
59+
uses: actions/upload-pages-artifact@v3
60+
with:
61+
path: public
62+
63+
deploy:
64+
name: Deploy to GitHub Pages
65+
needs: build
66+
runs-on: ubuntu-latest
67+
environment:
68+
name: github-pages
69+
url: ${{ steps.deployment.outputs.page_url }}
70+
steps:
71+
- name: Deploy to GitHub Pages
72+
id: deployment
73+
uses: actions/deploy-pages@v4

‎.gitignore‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Build output (assembled in CI, deployed to Pages)
2+
public/
3+
site/
4+
5+
# Checked-out source during local builds
6+
fiberpath-src/
7+
8+
# Python
9+
.venv/
10+
__pycache__/

‎README.md‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
1-
# fiberpath.github.io
1+
# fiberpath.github.io
2+
3+
The FiberPath project's main site and documentation hub.
4+
5+
It is published to GitHub Pages by `.github/workflows/deploy.yml`, which:
6+
7+
1. serves a minimal landing page (`index.html`) at `/`, and
8+
2. builds the MkDocs documentation from
9+
[`fiberpath/fiberpath`](https://github.com/fiberpath/fiberpath) and publishes
10+
it at `/fiberpath/`.
11+
12+
The software docs are authored in the `fiberpath/fiberpath` repo (next to the
13+
code) and validated there on every PR; this repo owns assembly and publishing.
14+
The build runs on push to `main`, on a daily schedule (to pick up doc changes in
15+
`fiberpath/fiberpath`), and on manual dispatch.
16+
17+
Live at <https://fiberpath.github.io>.

‎index.html‎

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1" />
6+
<title>FiberPath</title>
7+
<meta
8+
name="description"
9+
content="FiberPath — an open, machine-agnostic filament-winding path planner."
10+
/>
11+
<style>
12+
:root {
13+
--bg: #0f1419;
14+
--fg: #e6e6e6;
15+
--muted: #9aa4ad;
16+
--accent: #5a8db3;
17+
}
18+
* {
19+
box-sizing: border-box;
20+
}
21+
html,
22+
body {
23+
margin: 0;
24+
height: 100%;
25+
}
26+
body {
27+
background: var(--bg);
28+
color: var(--fg);
29+
font:
30+
16px/1.6 system-ui,
31+
-apple-system,
32+
Segoe UI,
33+
Roboto,
34+
sans-serif;
35+
display: grid;
36+
place-items: center;
37+
padding: 2rem;
38+
}
39+
main {
40+
max-width: 36rem;
41+
text-align: center;
42+
}
43+
h1 {
44+
font-size: 3rem;
45+
margin: 0 0 0.25rem;
46+
letter-spacing: -0.02em;
47+
}
48+
p.tagline {
49+
color: var(--muted);
50+
font-size: 1.15rem;
51+
margin: 0 0 2rem;
52+
}
53+
.actions {
54+
display: flex;
55+
gap: 0.75rem;
56+
justify-content: center;
57+
flex-wrap: wrap;
58+
}
59+
a.btn {
60+
display: inline-block;
61+
padding: 0.7rem 1.4rem;
62+
border-radius: 0.5rem;
63+
text-decoration: none;
64+
font-weight: 600;
65+
border: 1px solid var(--accent);
66+
}
67+
a.primary {
68+
background: var(--accent);
69+
color: #0f1419;
70+
}
71+
a.secondary {
72+
color: var(--fg);
73+
}
74+
footer {
75+
margin-top: 3rem;
76+
color: var(--muted);
77+
font-size: 0.9rem;
78+
}
79+
footer a {
80+
color: var(--muted);
81+
}
82+
</style>
83+
</head>
84+
<body>
85+
<main>
86+
<h1>FiberPath</h1>
87+
<p class="tagline">
88+
An open, machine-agnostic filament-winding path planner.
89+
</p>
90+
<div class="actions">
91+
<a class="btn primary" href="/fiberpath/">Documentation</a>
92+
<a class="btn secondary" href="https://github.com/fiberpath">GitHub</a>
93+
</div>
94+
<footer>
95+
This is the FiberPath project hub. For now it hosts the
96+
<a href="/fiberpath/">software documentation</a>; more will land here over time.
97+
</footer>
98+
</main>
99+
</body>
100+
</html>

0 commit comments

Comments
 (0)