/ .github / workflows / update-docs-parity.yml
update-docs-parity.yml
 1  name: Update Documentation Parity Tracker
 2  
 3  on:
 4    push:
 5      branches: [ "main" ]
 6      paths:
 7        - 'src/praisonai-agents/praisonaiagents/**/*.py'
 8        - 'src/praisonai-ts/src/**/*.ts'
 9        - 'src/praisonai-rust/src/**/*.rs'
10        - 'src/praisonai/praisonai/_dev/parity/**/*.py'
11        - '.github/workflows/update-docs-parity.yml'
12    workflow_dispatch:  # Allow manual trigger
13  
14  permissions:
15    contents: write
16  
17  jobs:
18    update-docs-parity:
19      runs-on: ubuntu-latest
20      
21      steps:
22      - name: Checkout repository
23        uses: actions/checkout@v4
24        with:
25          ref: main
26          persist-credentials: true
27          fetch-depth: 0
28  
29      - name: Checkout PraisonAIDocs
30        id: checkout_docs
31        continue-on-error: true
32        uses: actions/checkout@v4
33        with:
34          repository: MervinPraison/PraisonAIDocs
35          path: PraisonAIDocs
36          token: ${{ secrets.SECRETS_ADMIN_PAT }}
37  
38      - name: Set up Python
39        uses: actions/setup-python@v5
40        with:
41          python-version: '3.11'
42  
43      - name: Install dependencies
44        run: |
45          pip install pyyaml
46  
47      - name: Generate docs parity trackers
48        if: steps.checkout_docs.outcome == 'success'
49        run: |
50          cd $GITHUB_WORKSPACE
51          python3 src/praisonai/scripts/generate_docs_parity.py --docs-root PraisonAIDocs/docs --copy-docs
52          
53      - name: Check for changes
54        id: check_changes
55        run: |
56          if git diff --quiet src/praisonai-agents/DOCS_PARITY.md src/praisonai-ts/DOCS_PARITY.md src/praisonai-rust/DOCS_PARITY.md 2>/dev/null; then
57            echo "changes=false" >> $GITHUB_OUTPUT
58            echo "No changes to docs parity trackers"
59          else
60            echo "changes=true" >> $GITHUB_OUTPUT
61            echo "Docs parity trackers have been updated"
62            git diff --stat src/praisonai-agents/DOCS_PARITY.md src/praisonai-ts/DOCS_PARITY.md src/praisonai-rust/DOCS_PARITY.md
63          fi
64  
65      - name: Commit and push changes to praisonai-package
66        if: steps.check_changes.outputs.changes == 'true'
67        uses: stefanzweifel/git-auto-commit-action@v5
68        with:
69          commit_message: "docs: auto-update documentation parity trackers [skip ci]"
70          file_pattern: 'src/praisonai-agents/DOCS_PARITY.md src/praisonai-ts/DOCS_PARITY.md src/praisonai-rust/DOCS_PARITY.md'
71          commit_user_name: "MervinPraison"
72          commit_user_email: "454862+MervinPraison@users.noreply.github.com"
73          commit_author: "MervinPraison <454862+MervinPraison@users.noreply.github.com>"
74  
75      - name: Commit and push changes to PraisonAIDocs
76        if: steps.check_changes.outputs.changes == 'true' && steps.checkout_docs.outcome == 'success'
77        run: |
78          cd PraisonAIDocs
79          git config user.name "MervinPraison"
80          git config user.email "454862+MervinPraison@users.noreply.github.com"
81          git add docs/features/DOCS_PARITY.md docs/js/DOCS_PARITY.md docs/rust/DOCS_PARITY.md
82          git diff --staged --quiet || git commit -m "docs: auto-update documentation parity trackers [skip ci]"
83          git push