Sailsjs postgres #69
This file contains 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: Check Samples | |
on: | |
pull_request: | |
paths: | |
- 'samples/**' | |
jobs: | |
check_samples: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Run Checks | |
id: checks | |
run: | | |
./scripts/check-sample-files.sh > checklist.txt | |
- name: Add checklist to PR description | |
uses: actions/github-script@v5 | |
with: | |
script: | | |
const fs = require('fs'); | |
const pr_number = context.issue.number; | |
const marker = '## Samples Checklist'; | |
// Read the checklist from the file | |
let checklist = fs.readFileSync('checklist.txt', 'utf8').trim(); | |
let error = false; | |
if(!checklist) { | |
checklist = "✅" | |
} | |
else { | |
error = true; | |
} | |
// Get the current PR | |
const { data: pullRequest } = await github.rest.pulls.get({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: pr_number | |
}); | |
let newBody; | |
const body = pullRequest.body || ""; | |
const markerIndex = body.indexOf(marker); | |
if (markerIndex !== -1) { | |
// Replace the content below the marker | |
newBody = body.substring(0, markerIndex + marker.length) + "\n" + checklist; | |
} else { | |
// Append the checklist if the marker doesn't exist | |
newBody = body + "\n" + marker + "\n" + checklist; | |
} | |
// Update the PR description | |
await github.rest.pulls.update({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
pull_number: pr_number, | |
body: newBody | |
}); | |
if(error) { | |
throw new Error("Incomplete samples checklist. Please fix the issues and try again."); | |
} |