The GITHUB_OUTPUT format does not support multiline values with simple echo. Use heredoc delimiter to pass multiple changed file paths correctly.
52 lines
1.4 KiB
YAML
52 lines
1.4 KiB
YAML
name: Lint Agent Files
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- 'design/**'
|
|
- 'engineering/**'
|
|
- 'marketing/**'
|
|
- 'product/**'
|
|
- 'project-management/**'
|
|
- 'testing/**'
|
|
- 'support/**'
|
|
- 'spatial-computing/**'
|
|
- 'specialized/**'
|
|
- 'strategy/**'
|
|
|
|
jobs:
|
|
lint:
|
|
name: Validate agent frontmatter and structure
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Get changed agent files
|
|
id: changed
|
|
run: |
|
|
FILES=$(git diff --name-only --diff-filter=ACMR origin/${{ github.base_ref }}...HEAD -- \
|
|
'design/*.md' 'engineering/*.md' 'marketing/*.md' 'product/*.md' \
|
|
'project-management/*.md' 'testing/*.md' 'support/*.md' \
|
|
'spatial-computing/*.md' 'specialized/*.md' 'strategy/*.md')
|
|
{
|
|
echo "files<<ENDOFLIST"
|
|
echo "$FILES"
|
|
echo "ENDOFLIST"
|
|
} >> "$GITHUB_OUTPUT"
|
|
if [ -z "$FILES" ]; then
|
|
echo "No agent files changed."
|
|
else
|
|
echo "Changed files:"
|
|
echo "$FILES"
|
|
fi
|
|
|
|
- name: Run agent linter
|
|
if: steps.changed.outputs.files != ''
|
|
env:
|
|
CHANGED_FILES: ${{ steps.changed.outputs.files }}
|
|
run: |
|
|
chmod +x scripts/lint-agents.sh
|
|
./scripts/lint-agents.sh $CHANGED_FILES
|