Skip to content

Commit 5473763

Browse files
authored
Merge pull request #306 from kagent-dev/adb-workflow
Add KMCP to docs gen workflow
2 parents ffd146f + 02a1220 commit 5473763

1 file changed

Lines changed: 95 additions & 3 deletions

File tree

.github/workflows/update-ref-docs.yaml

Lines changed: 95 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ jobs:
2424
repository: ${{ github.repository_owner }}/kagent
2525
path: kagent
2626

27+
- name: Checkout kmcp repository
28+
uses: actions/checkout@v4
29+
with:
30+
repository: ${{ github.repository_owner }}/kmcp
31+
path: kmcp
32+
2733
- name: Checkout docs repository
2834
uses: actions/checkout@v4
2935
with:
@@ -39,6 +45,9 @@ jobs:
3945
- name: Set kagent commit SHA
4046
run: echo "KAGENT_COMMIT=$(cd kagent && git rev-parse --short HEAD)" >> $GITHUB_ENV
4147

48+
- name: Set kmcp commit SHA
49+
run: echo "KMCP_COMMIT=$(cd kmcp && git rev-parse --short HEAD)" >> $GITHUB_ENV
50+
4251
- name: Verify API directory exists
4352
run: |
4453
if [ ! -d "$GITHUB_WORKSPACE/kagent/go/api/v1alpha2" ]; then
@@ -130,6 +139,87 @@ jobs:
130139
131140
echo "API docs generated and processed successfully"
132141
142+
- name: Verify KMCP API directory exists
143+
run: |
144+
if [ ! -d "$GITHUB_WORKSPACE/kmcp/api/v1alpha1" ]; then
145+
echo "Error: KMCP API directory not found at $GITHUB_WORKSPACE/kmcp/api/v1alpha1"
146+
ls -la "$GITHUB_WORKSPACE/kmcp/api/" || echo "kmcp/api directory not found"
147+
exit 1
148+
fi
149+
echo "KMCP API directory found and verified"
150+
151+
- name: Generate KMCP API Reference
152+
run: |
153+
# Substitute KUBE_VERSION in the config template and write to a temp file
154+
cd "$GITHUB_WORKSPACE/website"
155+
if [ ! -f "scripts/crd-ref-docs-config.yaml" ]; then
156+
echo "Error: crd-ref-docs-config.yaml not found in scripts directory"
157+
exit 1
158+
fi
159+
160+
envsubst < scripts/crd-ref-docs-config.yaml > crd-ref-docs-config.yaml
161+
162+
echo "Changed to docs repository: $PWD"
163+
echo "Using config file:"
164+
cat crd-ref-docs-config.yaml
165+
166+
# Generate KMCP API docs
167+
go run github.com/elastic/crd-ref-docs@v0.1.0 \
168+
--source-path="$GITHUB_WORKSPACE/kmcp/api/v1alpha1/" \
169+
--renderer=markdown \
170+
--output-path ./ \
171+
--config=crd-ref-docs-config.yaml
172+
173+
# Check if generation was successful
174+
if [ ! -f "./out.md" ]; then
175+
echo "Error: KMCP API docs generation failed - out.md not created"
176+
exit 1
177+
fi
178+
179+
# Remove the temporary config file so it is not included in the PR
180+
rm -f crd-ref-docs-config.yaml
181+
182+
# Create index file with frontmatter
183+
echo '---' > src/app/docs/kmcp/reference/api-ref/page.mdx
184+
echo 'title: "API docs"' >> src/app/docs/kmcp/reference/api-ref/page.mdx
185+
echo 'pageOrder: 5' >> src/app/docs/kmcp/reference/api-ref/page.mdx
186+
echo 'description: "kmcp API reference documentation"' >> src/app/docs/kmcp/reference/api-ref/page.mdx
187+
echo '---' >> src/app/docs/kmcp/reference/api-ref/page.mdx
188+
echo '' >> src/app/docs/kmcp/reference/api-ref/page.mdx
189+
echo 'export const metadata = {' >> src/app/docs/kmcp/reference/api-ref/page.mdx
190+
echo ' title: "API docs",' >> src/app/docs/kmcp/reference/api-ref/page.mdx
191+
echo ' description: "kmcp API reference documentation",' >> src/app/docs/kmcp/reference/api-ref/page.mdx
192+
echo ' author: "kagent.dev"' >> src/app/docs/kmcp/reference/api-ref/page.mdx
193+
echo '};' >> src/app/docs/kmcp/reference/api-ref/page.mdx
194+
echo '' >> src/app/docs/kmcp/reference/api-ref/page.mdx
195+
cat "./out.md" >> src/app/docs/kmcp/reference/api-ref/page.mdx
196+
197+
# Remove temporary file
198+
rm -f "./out.md"
199+
200+
# Fix problematic angle brackets in the generated MDX file
201+
# Convert literal angle brackets to HTML entities to prevent MDX parsing errors
202+
# But preserve legitimate HTML tags like <br />, <kmcp-controller-ip>, etc.
203+
echo "Fixing problematic angle brackets in generated MDX..."
204+
205+
# First, temporarily replace legitimate HTML tags with placeholders
206+
sed -i 's/<br \/>/__BR_TAG__/g' "src/app/docs/kmcp/reference/api-ref/page.mdx"
207+
208+
# Convert remaining angle brackets to HTML entities
209+
sed -i 's/</\&lt;/g' "src/app/docs/kmcp/reference/api-ref/page.mdx"
210+
sed -i 's/>/\&gt;/g' "src/app/docs/kmcp/reference/api-ref/page.mdx"
211+
212+
# Restore legitimate HTML tags
213+
sed -i 's/__BR_TAG__/<br \/>/g' "src/app/docs/kmcp/reference/api-ref/page.mdx"
214+
215+
# Verify the output file was created
216+
if [ ! -f "src/app/docs/kmcp/reference/api-ref/page.mdx" ]; then
217+
echo "Error: Failed to create KMCP API docs page"
218+
exit 1
219+
fi
220+
221+
echo "KMCP API docs generated and processed successfully"
222+
133223
- name: Generate Helm Chart Reference
134224
run: |
135225
echo "Looking for Helm directory:"
@@ -266,11 +356,13 @@ jobs:
266356
with:
267357
token: ${{ secrets.GITHUB_TOKEN }}
268358
path: website
269-
commit-message: "docs: Update API and kagent Helm reference docs"
359+
commit-message: "docs: Update kagent and kmcp API reference docs"
270360
signoff: true
271-
title: "Update API and kagent Helm reference docs"
361+
title: "Update kagent and kmcp API reference docs"
272362
body: |
273-
Automated API and kagent Helm chart documentation update based on the latest commit [`${{ env.KAGENT_COMMIT }}`](https://github.com/${{ github.repository_owner }}/kagent/commit/${{ env.KAGENT_COMMIT }}) to `main` in the **kagent** repository.
363+
Automated API and kagent Helm chart documentation update based on the latest commits:
364+
- **kagent**: [`${{ env.KAGENT_COMMIT }}`](https://github.com/${{ github.repository_owner }}/kagent/commit/${{ env.KAGENT_COMMIT }})
365+
- **kmcp**: [`${{ env.KMCP_COMMIT }}`](https://github.com/${{ github.repository_owner }}/kmcp/commit/${{ env.KMCP_COMMIT }})
274366
275367
This PR was automatically generated by the [**Update Reference documentation** workflow](https://github.com/${{ github.repository_owner }}/website/actions/workflows/update-ref-docs.yaml).
276368
branch: api-gen-update

0 commit comments

Comments
 (0)