rp2xxx: Fix pins.zig and examples #315
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Code Linting | |
on: | |
pull_request: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pull-requests: write | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Setup Zig | |
uses: mlugg/setup-zig@v2 | |
with: | |
version: 0.14.1 | |
- name: Build linter | |
working-directory: tools/linter | |
run: zig build --release=safe | |
- name: Run linter | |
run: | | |
echo "Base SHA: ${{ github.event.pull_request.base.sha }}" | |
echo "Head SHA: ${{ github.event.pull_request.head.sha }}" | |
# Get changed .zig files | |
FILES=$(git diff --name-only --diff-filter=d ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | grep '\.zig$' || true) | |
echo "Changed files: $FILES" | |
if [ -n "$FILES" ]; then | |
echo "$FILES" | xargs ./tools/linter/zig-out/bin/linter > lint_results.json | |
else | |
echo "[]" > lint_results.json | |
fi | |
# Debug output | |
echo "Lint results:" | |
cat lint_results.json | |
- name: Post comments with metadata | |
uses: actions/github-script@v7 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
script: | | |
const fs = require('fs'); | |
const crypto = require('crypto'); | |
if (!fs.existsSync('lint_results.json')) { | |
console.log('No lint results file found'); | |
return; | |
} | |
const content = fs.readFileSync('lint_results.json', 'utf8').trim(); | |
if (!content || content === '[]') { | |
console.log('No lint issues found'); | |
return; | |
} | |
const issues = JSON.parse(content); | |
const existingComments = await github.rest.pulls.listReviewComments({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: context.issue.number | |
}); | |
const botComments = existingComments.data.filter(comment => | |
comment.user.login === 'github-actions[bot]' && | |
comment.body.includes('<!-- lint-comment') | |
); | |
const existingHashes = new Set(); | |
botComments.forEach(comment => { | |
const match = comment.body.match(/<!-- lint-comment:(\w+) -->/); | |
if (match) existingHashes.add(match[1]); | |
}); | |
let postedCount = 0; | |
let skippedCount = 0; | |
for (const issue of issues) { | |
const issueData = `${issue.file}:${issue.line}:${issue.message}`; | |
const issueHash = crypto.createHash('md5').update(issueData).digest('hex').substring(0, 8); | |
if (existingHashes.has(issueHash)) { | |
console.log(`Skipping duplicate issue: ${issueHash}`); | |
skippedCount++; | |
continue; | |
} | |
const commentBody = `${issue.message}\n\n<!-- lint-comment:${issueHash} -->\n`; | |
console.log(`comment body:`, commentBody); | |
try { | |
await github.rest.pulls.createReviewComment({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: context.issue.number, | |
commit_id: context.payload.pull_request.head.sha, | |
path: issue.file, | |
line: issue.line, | |
body: commentBody | |
}); | |
postedCount++; | |
} catch (error) { | |
console.error(`Failed to post comment:`, error.message); | |
} | |
} | |
console.log(`Posted ${postedCount} new comments, skipped ${skippedCount} duplicates`); |