name: Update Platform Components Table on: push: branches: - main workflow_dispatch: concurrency: group: update-platform-components cancel-in-progress: false env: PYTHON_VERSION: "3.11" OUTPUT_FILE: docs-website/docs/overview/platform-components.mdx permissions: contents: read jobs: update: runs-on: ubuntu-slim steps: - name: Checkout deepset-ai/haystack uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: token: ${{ secrets.HAYSTACK_BOT_TOKEN }} # Full history so git diff against HEAD works correctly fetch-depth: 0 - name: Checkout deepset-ai/haystack-core-integrations uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: repository: deepset-ai/haystack-core-integrations path: haystack-core-integrations fetch-depth: 1 sparse-checkout: integrations sparse-checkout-cone-mode: true - name: Checkout platform repo (sparse — schema file only) uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: repository: ${{ secrets.SCHEMA_REPO }} token: ${{ secrets.PLATFORM_REPO_PAT }} path: platform-repo sparse-checkout: | ${{ secrets.SCHEMA_REPO_PATH }} sparse-checkout-cone-mode: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: "${{ env.PYTHON_VERSION }}" - name: Generate platform components table run: | python scripts/generate_platform_components_table.py \ --haystack-src . \ --integrations-src ./haystack-core-integrations \ --schema ./platform-repo/${{ secrets.SCHEMA_REPO_PATH }} \ --output ./${{ env.OUTPUT_FILE }} - name: Compute PR body id: pr_body run: | FILE="${{ env.OUTPUT_FILE }}" if git ls-files --error-unmatch "$FILE" 2>/dev/null; then ADDED=$(git diff HEAD -- "$FILE" | grep -cE '^\+\| `' || true) REMOVED=$(git diff HEAD -- "$FILE" | grep -cE '^\-\| `' || true) SUMMARY="Component rows changed: **+${ADDED}** added, **-${REMOVED}** removed." else SUMMARY="Initial generation of the platform components table." fi { echo "body<> "$GITHUB_OUTPUT" - name: Open or update pull request uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1 # v8.1.1 with: token: ${{ secrets.HAYSTACK_BOT_TOKEN }} commit-message: "chore: update platform components table" branch: chore/update-platform-components base: main title: "chore: update platform components table" add-paths: | ${{ env.OUTPUT_FILE }} body: ${{ steps.pr_body.outputs.body }} labels: | documentation ignore-for-release-notes