Skip to content

Commit f5f54f2

Browse files
committed
Prod/dev split, dev site on dev relative path, prod on root
1 parent ffce9cb commit f5f54f2

1 file changed

Lines changed: 63 additions & 21 deletions

File tree

.github/workflows/build-and-deploy.yml

Lines changed: 63 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,19 @@ jobs:
6565
pip install 'elevenlabs>=0.2.27,<0.3.0'
6666
fi
6767
68-
- name: Restore video cache
68+
- name: Restore dev video cache
6969
uses: actions/cache@v4
7070
with:
71-
path: .video-cache
72-
key: videos-${{ hashFiles('Chapter**/Scene*.py', 'Chapter**/Thumb.py', 'scene_utils/**/*.py', 'imgs/**', 'manim.cfg') }}
73-
restore-keys: videos-
71+
path: .video-cache/dev
72+
key: dev-videos-${{ hashFiles('Chapter**/Scene*.py', 'Chapter**/Thumb.py', 'scene_utils/**/*.py', 'imgs/**', 'manim.cfg') }}
73+
restore-keys: dev-videos-
74+
75+
- name: Restore prod video cache
76+
uses: actions/cache@v4
77+
with:
78+
path: .video-cache/prod
79+
key: prod-videos-${{ hashFiles('Chapter**/Scene*.py', 'Chapter**/Thumb.py', 'scene_utils/**/*.py', 'imgs/**', 'manim.cfg') }}
80+
restore-keys: prod-videos-
7481

7582
- name: Restore voiceover cache
7683
uses: actions/cache@v4
@@ -92,7 +99,14 @@ jobs:
9299
- name: Determine chapters to build
93100
id: chapters
94101
run: |
95-
mkdir -p .video-cache
102+
mkdir -p .video-cache/dev .video-cache/prod
103+
104+
# Determine build mode
105+
if [ "${{ inputs.prod }}" = "true" ]; then
106+
CACHE_DIR=".video-cache/prod"
107+
else
108+
CACHE_DIR=".video-cache/dev"
109+
fi
96110
97111
# On workflow_dispatch, use the input
98112
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
@@ -102,11 +116,11 @@ jobs:
102116
echo "rebuild=${{ inputs.chapters }}" >> "$GITHUB_OUTPUT"
103117
fi
104118
else
105-
# On push, rebuild chapters that have cache misses
119+
# On push, rebuild dev chapters that have cache misses
106120
REBUILD=""
107121
for N in 0 1 2 3 4 5 6 7 8 9; do
108122
CHAPTER="Chapter${N}"
109-
if [ ! -f ".video-cache/${CHAPTER}_480p15.mp4" ] || [ ! -f ".video-cache/${CHAPTER}.png" ]; then
123+
if [ ! -f "${CACHE_DIR}/${CHAPTER}_480p15.mp4" ] || [ ! -f "${CACHE_DIR}/${CHAPTER}.png" ]; then
110124
if [ -d "$CHAPTER" ]; then
111125
REBUILD="${REBUILD:+${REBUILD},}${N}"
112126
fi
@@ -119,19 +133,17 @@ jobs:
119133
env:
120134
ELEVEN_API_KEY: ${{ secrets.ELEVEN_API_KEY }}
121135
run: |
136+
# Determine target cache directory
137+
if [ "${{ inputs.prod }}" = "true" ]; then
138+
CACHE_DIR=".video-cache/prod"
139+
else
140+
CACHE_DIR=".video-cache/dev"
141+
fi
142+
122143
REBUILD="${{ steps.chapters.outputs.rebuild }}"
144+
echo "Build mode: $([ "${{ inputs.prod }}" = "true" ] && echo "PROD" || echo "DEV")"
123145
echo "Chapters to rebuild: ${REBUILD:-none}"
124146
125-
# Copy cached videos for chapters we are NOT rebuilding
126-
for N in 0 1 2 3 4 5 6 7 8 9; do
127-
CHAPTER="Chapter${N}"
128-
if [ -f ".video-cache/${CHAPTER}_480p15.mp4" ] && [ -f ".video-cache/${CHAPTER}.png" ]; then
129-
echo "Using cached video for ${CHAPTER}"
130-
cp ".video-cache/${CHAPTER}_480p15.mp4" "docs/${CHAPTER}_480p15.mp4"
131-
cp ".video-cache/${CHAPTER}.png" "docs/${CHAPTER}.png"
132-
fi
133-
done
134-
135147
# Build chapters that need rebuilding
136148
if [ -n "$REBUILD" ]; then
137149
IFS=',' read -ra CHAPTERS <<< "$REBUILD"
@@ -160,15 +172,45 @@ jobs:
160172
cd ..
161173
162174
# Cache the results
163-
cp "docs/${CHAPTER}_480p15.mp4" ".video-cache/${CHAPTER}_480p15.mp4"
164-
cp "docs/${CHAPTER}.png" ".video-cache/${CHAPTER}.png"
175+
cp "docs/${CHAPTER}_480p15.mp4" "${CACHE_DIR}/${CHAPTER}_480p15.mp4"
176+
cp "docs/${CHAPTER}.png" "${CACHE_DIR}/${CHAPTER}.png"
165177
166178
echo "${CHAPTER} complete"
167179
done
168180
fi
169181
170-
- name: Build MkDocs site
171-
run: mkdocs build
182+
- name: Assemble and build site
183+
run: |
184+
# Step 1: Build prod site at root (if prod videos exist)
185+
PROD_VIDEOS_EXIST=false
186+
for N in 0 1 2 3 4 5 6 7 8 9; do
187+
CHAPTER="Chapter${N}"
188+
if [ -f ".video-cache/prod/${CHAPTER}_480p15.mp4" ]; then
189+
cp ".video-cache/prod/${CHAPTER}_480p15.mp4" "docs/${CHAPTER}_480p15.mp4"
190+
cp ".video-cache/prod/${CHAPTER}.png" "docs/${CHAPTER}.png"
191+
PROD_VIDEOS_EXIST=true
192+
fi
193+
done
194+
195+
if [ "$PROD_VIDEOS_EXIST" = "true" ]; then
196+
echo "Building prod site at root..."
197+
mkdocs build -d site
198+
else
199+
echo "No prod videos cached yet. Building placeholder prod site..."
200+
mkdocs build -d site
201+
fi
202+
203+
# Step 2: Build dev site at /dev/
204+
for N in 0 1 2 3 4 5 6 7 8 9; do
205+
CHAPTER="Chapter${N}"
206+
if [ -f ".video-cache/dev/${CHAPTER}_480p15.mp4" ]; then
207+
cp ".video-cache/dev/${CHAPTER}_480p15.mp4" "docs/${CHAPTER}_480p15.mp4"
208+
cp ".video-cache/dev/${CHAPTER}.png" "docs/${CHAPTER}.png"
209+
fi
210+
done
211+
212+
echo "Building dev site at /dev/..."
213+
mkdocs build -d site/dev
172214
173215
- name: Upload Pages artifact
174216
uses: actions/upload-pages-artifact@v3

0 commit comments

Comments
 (0)