name: 'Pre-commit' description: 'Pre-commit' runs: using: 'composite' steps: - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install uv uses: astral-sh/setup-uv@v6 with: enable-cache: true - name: Install dependencies shell: bash run: | uv sync --frozen --all-extras - name: Install pre-commit hooks shell: bash run: | source .venv/bin/activate uv run pre-commit install-hooks - name: Run Pre-commit id: precommit shell: bash run: | echo "## Pre-commit Results" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY if uv run pre-commit run --all-files 2>&1 | tee output.txt; then echo "✅ **All pre-commit hooks passed!**" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| Hook | Status |" >> $GITHUB_STEP_SUMMARY echo "|------|--------|" >> $GITHUB_STEP_SUMMARY grep -E "\.\.\.*Passed|\.\.\.*Skipped" output.txt | while read line; do hook=$(echo "$line" | sed 's/\.\.\..*Passed.*//' | sed 's/\.\.\..*Skipped.*//' | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//') if echo "$line" | grep -q "Passed"; then echo "| $hook | ✅ Passed |" >> $GITHUB_STEP_SUMMARY else echo "| $hook | ⏭️ Skipped |" >> $GITHUB_STEP_SUMMARY fi done else echo "❌ **Some pre-commit hooks failed**" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| Hook | Status |" >> $GITHUB_STEP_SUMMARY echo "|------|--------|" >> $GITHUB_STEP_SUMMARY grep -E "\.\.\.*Passed|\.\.\.*Failed|\.\.\.*Skipped" output.txt | while read line; do hook=$(echo "$line" | sed 's/\.\.\..*Passed.*//' | sed 's/\.\.\..*Failed.*//' | sed 's/\.\.\..*Skipped.*//' | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//') if echo "$line" | grep -q "Passed"; then echo "| $hook | ✅ Passed |" >> $GITHUB_STEP_SUMMARY elif echo "$line" | grep -q "Failed"; then echo "| $hook | ❌ Failed |" >> $GITHUB_STEP_SUMMARY else echo "| $hook | ⏭️ Skipped |" >> $GITHUB_STEP_SUMMARY fi done echo "" >> $GITHUB_STEP_SUMMARY echo "
" >> $GITHUB_STEP_SUMMARY echo "📋 Click to see detailed error output" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY cat output.txt >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY echo "
" >> $GITHUB_STEP_SUMMARY exit 1 fi