mirror of
https://github.com/dokploy/dokploy.git
synced 2026-06-14 03:19:49 +00:00
415298fddb
Implement workflows to sync the OpenAPI specification to both the MCP and CLI repositories. This includes cloning the repositories, updating the openapi.json file, and committing the changes with relevant metadata. The process ensures that the OpenAPI documentation is consistently updated across multiple platforms.
113 lines
3.3 KiB
YAML
113 lines
3.3 KiB
YAML
name: Generate and Sync OpenAPI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- canary
|
|
- main
|
|
paths:
|
|
- 'apps/dokploy/server/api/routers/**'
|
|
- 'packages/server/src/services/**'
|
|
- 'packages/server/src/db/schema/**'
|
|
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
generate-and-commit:
|
|
name: Generate OpenAPI and commit to Dokploy repo
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Dokploy repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
- uses: pnpm/action-setup@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24.4.0
|
|
cache: "pnpm"
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install --frozen-lockfile
|
|
|
|
- name: Generate OpenAPI specification
|
|
run: |
|
|
pnpm generate:openapi
|
|
|
|
# Verifica que se generó correctamente
|
|
if [ ! -f openapi.json ]; then
|
|
echo "❌ openapi.json not found"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ OpenAPI specification generated successfully"
|
|
|
|
- name: Sync to website repository
|
|
run: |
|
|
# Clona el repositorio de website
|
|
git clone https://x-access-token:${{ secrets.DOCS_SYNC_TOKEN }}@github.com/dokploy/website.git website-repo
|
|
|
|
cd website-repo
|
|
|
|
# Copia el openapi.json al website (sobrescribe)
|
|
mkdir -p apps/docs/public
|
|
cp -f ../openapi.json apps/docs/public/openapi.json
|
|
|
|
# Configura git
|
|
git config user.name "Dokploy Bot"
|
|
git config user.email "bot@dokploy.com"
|
|
|
|
# Agrega y commitea siempre
|
|
git add apps/docs/public/openapi.json
|
|
git commit -m "chore: sync OpenAPI specification [skip ci]" \
|
|
-m "Source: ${{ github.repository }}@${{ github.sha }}" \
|
|
-m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" \
|
|
--allow-empty
|
|
|
|
git push
|
|
|
|
echo "✅ OpenAPI synced to website successfully"
|
|
|
|
- name: Sync to MCP repository
|
|
run: |
|
|
git clone https://x-access-token:${{ secrets.DOCS_SYNC_TOKEN }}@github.com/dokploy/mcp.git mcp-repo
|
|
|
|
cd mcp-repo
|
|
|
|
cp -f ../openapi.json openapi.json
|
|
|
|
git config user.name "Dokploy Bot"
|
|
git config user.email "bot@dokploy.com"
|
|
|
|
git add openapi.json
|
|
git commit -m "chore: sync OpenAPI specification [skip ci]" \
|
|
-m "Source: ${{ github.repository }}@${{ github.sha }}" \
|
|
-m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" \
|
|
--allow-empty
|
|
|
|
git push
|
|
|
|
echo "✅ OpenAPI synced to MCP repository successfully"
|
|
|
|
- name: Sync to CLI repository
|
|
run: |
|
|
git clone https://x-access-token:${{ secrets.DOCS_SYNC_TOKEN }}@github.com/dokploy/cli.git cli-repo
|
|
|
|
cd cli-repo
|
|
|
|
cp -f ../openapi.json openapi.json
|
|
|
|
git config user.name "Dokploy Bot"
|
|
git config user.email "bot@dokploy.com"
|
|
|
|
git add openapi.json
|
|
git commit -m "chore: sync OpenAPI specification [skip ci]" \
|
|
-m "Source: ${{ github.repository }}@${{ github.sha }}" \
|
|
-m "Updated: $(date -u +'%Y-%m-%d %H:%M:%S UTC')" \
|
|
--allow-empty
|
|
|
|
git push
|
|
|
|
echo "✅ OpenAPI synced to CLI repository successfully"
|
|
|