Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions .github/workflows/update-platform-components.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.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<<EOF"
echo "## Platform Components Table Update"
echo ""
echo "${SUMMARY}"
echo ""
echo "_Auto-generated by the [update-platform-components](https://github.com/deepset-ai/haystack/actions/workflows/update-platform-components.yml) workflow._"
echo "EOF"
} >> "$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 [skip ci]"
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
Loading
Loading