Skip to content

feat(keycardai-mcp): Adds PydanticAI integration for MCP frameworks #98

feat(keycardai-mcp): Adds PydanticAI integration for MCP frameworks

feat(keycardai-mcp): Adds PydanticAI integration for MCP frameworks #98

Workflow file for this run

name: Pull Request Validation
on:
pull_request:
branches:
- main
permissions:
contents: read
pull-requests: write
jobs:
validate-commits:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Install just
uses: extractions/setup-just@v2
- name: Validate commit messages
run: just validate-commits
lint-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Install just
uses: extractions/setup-just@v2
- name: Install dependencies
run: uv sync --all-extras
- name: Run linting and formatting checks
run: just check
- name: Run tests
run: just test
release-preview:
runs-on: ubuntu-latest
needs: [validate-commits, lint-and-test]
if: github.event_name == 'pull_request'
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@v4
- name: Install just
uses: extractions/setup-just@v2
- name: Install dependencies
run: uv sync --all-extras
- name: Generate release preview
id: release-preview
run: |
# Get version preview information using the Python script
version_preview=$(uv run python scripts/version_preview.py --format github-summary)
echo "preview<<EOF" >> $GITHUB_OUTPUT
echo "$version_preview" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
# Check if there are any changes by looking for version information
changes=$(uv run python scripts/version_preview.py --format json)
if [ "$changes" = "[]" ] || [ -z "$changes" ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
- name: Display release preview
if: steps.release-preview.outputs.has_changes == 'true'
run: |
# Use cat with here document to safely handle special characters
cat >> $GITHUB_STEP_SUMMARY << 'EOF'
${{ steps.release-preview.outputs.preview }}
### 📝 Changelog Preview
```
EOF
just preview-changelog >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
- name: No release preview
if: steps.release-preview.outputs.has_changes == 'false'
run: |
# Use cat with here document to safely handle special characters
cat >> $GITHUB_STEP_SUMMARY << 'EOF'
${{ steps.release-preview.outputs.preview }}
EOF
- name: Comment on PR with release preview
if: github.event_name == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}
PR_NUMBER: ${{ github.event.number }}
run: |
uv run python scripts/pr_comment.py