Skip to content

Commit 51df491

Browse files
committed
feat: include book deployment in Publish All workflow
Triggers book-publish-live first, waits for completion, then deploys kits, tinytorch, and labs sequentially. One button to deploy everything.
1 parent 4d5bb5d commit 51df491

File tree

1 file changed

+62
-11
lines changed

1 file changed

+62
-11
lines changed

β€Ž.github/workflows/publish-all-live.ymlβ€Ž

Lines changed: 62 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,27 @@
11
name: 'πŸš€ Publish All (Live)'
22

3-
# Orchestrator workflow that deploys all subsites sequentially
4-
# Prevents gh-pages conflicts by running one deployment at a time
3+
# Orchestrator workflow that deploys ALL subsites sequentially
4+
# Book β†’ Kits β†’ TinyTorch β†’ Labs
55

66
on:
77
workflow_dispatch:
88
inputs:
9+
book_version:
10+
description: 'Book version (e.g., v0.6.0)'
11+
required: true
12+
default: 'v0.6.0'
13+
book_description:
14+
description: 'Book release description'
15+
required: true
16+
default: 'Content updates and improvements'
17+
release_type:
18+
description: 'Release type'
19+
type: choice
20+
options:
21+
- minor
22+
- patch
23+
- major
24+
default: 'minor'
925
deploy_book:
1026
description: 'Deploy Book?'
1127
type: boolean
@@ -32,11 +48,45 @@ concurrency:
3248

3349
jobs:
3450
# ==========================================================================
35-
# Step 1: Deploy Kits
51+
# Step 1: Deploy Book (triggers the full book-publish-live workflow)
52+
# ==========================================================================
53+
deploy-book:
54+
name: 'πŸ“š Deploy Book'
55+
if: ${{ inputs.deploy_book }}
56+
runs-on: ubuntu-latest
57+
steps:
58+
- name: Trigger Book Publish Workflow
59+
run: |
60+
echo "πŸš€ Triggering book-publish-live workflow..."
61+
gh workflow run "book-publish-live.yml" \
62+
--repo ${{ github.repository }} \
63+
--ref main \
64+
-f release_type=${{ inputs.release_type }} \
65+
-f description="${{ inputs.book_description }}" \
66+
-f confirm=PUBLISH \
67+
-f ai_generated_notes=yes \
68+
-f testing_mode=no
69+
70+
echo "⏳ Waiting for workflow to start..."
71+
sleep 10
72+
73+
# Get the run ID of the triggered workflow
74+
RUN_ID=$(gh run list --workflow=book-publish-live.yml --repo ${{ github.repository }} --limit 1 --json databaseId --jq '.[0].databaseId')
75+
echo "πŸ“‹ Workflow run ID: $RUN_ID"
76+
echo "run_id=$RUN_ID" >> $GITHUB_OUTPUT
77+
78+
echo "⏳ Waiting for book workflow to complete (this may take 20-30 minutes)..."
79+
gh run watch $RUN_ID --repo ${{ github.repository }} --exit-status
80+
81+
echo "βœ… Book deployment complete!"
82+
83+
# ==========================================================================
84+
# Step 2: Deploy Kits (after book)
3685
# ==========================================================================
3786
deploy-kits:
3887
name: 'πŸ“¦ Deploy Kits'
39-
if: ${{ inputs.deploy_kits }}
88+
needs: [deploy-book]
89+
if: ${{ always() && inputs.deploy_kits && (needs.deploy-book.result == 'success' || needs.deploy-book.result == 'skipped') }}
4090
runs-on: ubuntu-latest
4191
steps:
4292
- name: Checkout
@@ -61,7 +111,7 @@ jobs:
61111
commit_message: 'πŸ“¦ Deploy Kits - ${{ github.sha }}'
62112

63113
# ==========================================================================
64-
# Step 2: Deploy TinyTorch (after kits)
114+
# Step 3: Deploy TinyTorch (after kits)
65115
# ==========================================================================
66116
deploy-tinytorch:
67117
name: 'πŸ”₯ Deploy TinyTorch'
@@ -91,7 +141,7 @@ jobs:
91141
commit_message: 'πŸ”₯ Deploy TinyTorch - ${{ github.sha }}'
92142

93143
# ==========================================================================
94-
# Step 3: Deploy Labs (after tinytorch)
144+
# Step 4: Deploy Labs (after tinytorch)
95145
# ==========================================================================
96146
deploy-labs:
97147
name: 'πŸ”¬ Deploy Labs'
@@ -125,25 +175,26 @@ jobs:
125175
# ==========================================================================
126176
summary:
127177
name: 'πŸ“‹ Deployment Summary'
128-
needs: [deploy-kits, deploy-tinytorch, deploy-labs]
178+
needs: [deploy-book, deploy-kits, deploy-tinytorch, deploy-labs]
129179
if: always()
130180
runs-on: ubuntu-latest
131181
steps:
132182
- name: Generate Summary
133183
run: |
134184
echo "## πŸš€ Publish All Complete" >> $GITHUB_STEP_SUMMARY
135185
echo "" >> $GITHUB_STEP_SUMMARY
186+
echo "**Version**: ${{ inputs.book_version }}" >> $GITHUB_STEP_SUMMARY
187+
echo "**Description**: ${{ inputs.book_description }}" >> $GITHUB_STEP_SUMMARY
188+
echo "" >> $GITHUB_STEP_SUMMARY
136189
echo "| Site | Status |" >> $GITHUB_STEP_SUMMARY
137190
echo "|------|--------|" >> $GITHUB_STEP_SUMMARY
191+
echo "| πŸ“š Book | ${{ needs.deploy-book.result }} |" >> $GITHUB_STEP_SUMMARY
138192
echo "| πŸ“¦ Kits | ${{ needs.deploy-kits.result }} |" >> $GITHUB_STEP_SUMMARY
139193
echo "| πŸ”₯ TinyTorch | ${{ needs.deploy-tinytorch.result }} |" >> $GITHUB_STEP_SUMMARY
140194
echo "| πŸ”¬ Labs | ${{ needs.deploy-labs.result }} |" >> $GITHUB_STEP_SUMMARY
141195
echo "" >> $GITHUB_STEP_SUMMARY
142196
echo "### 🌐 Live URLs" >> $GITHUB_STEP_SUMMARY
197+
echo "- πŸ“š [Book](https://mlsysbook.ai/book/)" >> $GITHUB_STEP_SUMMARY
143198
echo "- πŸ“¦ [Kits](https://mlsysbook.ai/kits/)" >> $GITHUB_STEP_SUMMARY
144199
echo "- πŸ”₯ [TinyTorch](https://mlsysbook.ai/tinytorch/)" >> $GITHUB_STEP_SUMMARY
145200
echo "- πŸ”¬ [Labs](https://mlsysbook.ai/labs/)" >> $GITHUB_STEP_SUMMARY
146-
echo "" >> $GITHUB_STEP_SUMMARY
147-
echo "### πŸ“š Book Deployment" >> $GITHUB_STEP_SUMMARY
148-
echo "Book uses a separate workflow with version management." >> $GITHUB_STEP_SUMMARY
149-
echo "Run **πŸ“š Book Publish (Live)** separately for book updates." >> $GITHUB_STEP_SUMMARY

0 commit comments

Comments
Β (0)