Skip to content

feat: initial version #19

feat: initial version

feat: initial version #19

Workflow file for this run

---
# lint all markdown files
name: "CI"
on:
push:
branches:
- master
pull_request:
branches:
- master
types:
- opened
- synchronize
- reopened
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install markdownlint-cli
run: |
npm install -g markdownlint-cli
- name: Lint markdown files
run: |
markdownlint \
-f \
-o markdownlint_report.log \
'**/*.md'
- name: Print summary
if: failure()
run: |
echo "### Linting report:" >> $GITHUB_STEP_SUMMARY
cat markdownlint_report.log >> $GITHUB_STEP_SUMMARY
echo "### Suggested changes:" >> $GITHUB_STEP_SUMMARY
echo '```diff' >> $GITHUB_STEP_SUMMARY
echo "$(git diff)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
- name: Additional checks
if: always()
run: |
exit_code=0
# find invalid file names
find ./commands -type f -name '*.md' -print0 | while IFS= read -r -d '' file; do
filename=$(basename "$file")
if [[ $filename != 'body.md' && $filename != 'footer.md' ]]; then
echo "Invalid file $file. Only body.md and footer.md are allowed" >> $GITHUB_STEP_SUMMARY
exit_code=1
fi
done
# check character count
find ./commands -type f \( -name 'body.md' -o -name 'footer.md' \) -print0 | while IFS= read -r -d '' file; do
echo "Checking $file"
char_count=$(wc -c <"$file")
echo "Character count: $char_count"
filename=$(basename "$file")
echo "Filename: $filename"
if [[ $filename == 'body.md' && $char_count -gt 4096 ]]; then
echo "$file exceeds the 4096 character limit" >> $GITHUB_STEP_SUMMARY
exit_code=1
elif [[ $filename == 'footer.md' && $char_count -gt 2048 ]]; then
echo "$file exceeds the 2048 character limit"
exit_code=1
fi
echo "Exit code after checking character count: $exit_code"
if [[ $filename == 'body.md' ]]; then
dir=$(dirname "$file")
if [[ -f "$dir/footer.md" ]]; then
footer_char_count=$(wc -c <"$dir/footer.md")
total_char_count=$((char_count + footer_char_count))
if [[ $total_char_count -gt 6000 ]]; then
echo "The combined character count of $file and $dir/footer.md exceeds the 6000 character limit" \
>> $GITHUB_STEP_SUMMARY
exit_code=1
fi
fi
fi
done
echo "Final exit code: $exit_code"
exit $exit_code