jeuko's picture
Sync from GitHub (main)
8018595 verified
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 "<details>" >> $GITHUB_STEP_SUMMARY
echo "<summary>πŸ“‹ Click to see detailed error output</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat output.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
exit 1
fi