|
24 | 24 | repository: ${{ github.repository_owner }}/kagent |
25 | 25 | path: kagent |
26 | 26 |
|
| 27 | + - name: Checkout kmcp repository |
| 28 | + uses: actions/checkout@v4 |
| 29 | + with: |
| 30 | + repository: ${{ github.repository_owner }}/kmcp |
| 31 | + path: kmcp |
| 32 | + |
27 | 33 | - name: Checkout docs repository |
28 | 34 | uses: actions/checkout@v4 |
29 | 35 | with: |
|
39 | 45 | - name: Set kagent commit SHA |
40 | 46 | run: echo "KAGENT_COMMIT=$(cd kagent && git rev-parse --short HEAD)" >> $GITHUB_ENV |
41 | 47 |
|
| 48 | + - name: Set kmcp commit SHA |
| 49 | + run: echo "KMCP_COMMIT=$(cd kmcp && git rev-parse --short HEAD)" >> $GITHUB_ENV |
| 50 | + |
42 | 51 | - name: Verify API directory exists |
43 | 52 | run: | |
44 | 53 | if [ ! -d "$GITHUB_WORKSPACE/kagent/go/api/v1alpha2" ]; then |
@@ -130,6 +139,87 @@ jobs: |
130 | 139 |
|
131 | 140 | echo "API docs generated and processed successfully" |
132 | 141 |
|
| 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/</\</g' "src/app/docs/kmcp/reference/api-ref/page.mdx" |
| 210 | + sed -i 's/>/\>/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 | +
|
133 | 223 | - name: Generate Helm Chart Reference |
134 | 224 | run: | |
135 | 225 | echo "Looking for Helm directory:" |
@@ -266,11 +356,13 @@ jobs: |
266 | 356 | with: |
267 | 357 | token: ${{ secrets.GITHUB_TOKEN }} |
268 | 358 | path: website |
269 | | - commit-message: "docs: Update API and kagent Helm reference docs" |
| 359 | + commit-message: "docs: Update kagent and kmcp API reference docs" |
270 | 360 | signoff: true |
271 | | - title: "Update API and kagent Helm reference docs" |
| 361 | + title: "Update kagent and kmcp API reference docs" |
272 | 362 | 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 }}) |
274 | 366 | |
275 | 367 | This PR was automatically generated by the [**Update Reference documentation** workflow](https://github.com/${{ github.repository_owner }}/website/actions/workflows/update-ref-docs.yaml). |
276 | 368 | branch: api-gen-update |
|
0 commit comments