fix history panel colors in light mode (#119) #189
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: Front-End Linter SPDX Licenses Checker | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- "main" | |
- "staging" | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- assigned | |
- review_requested | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
- name: Install dependencies | |
working-directory: app/frontend | |
run: npm install | |
- name: Run ESLint with Auto-fix | |
working-directory: app/frontend | |
run: | | |
set +e | |
npm run lint || true # Run lint and allow the workflow to continue even if there are warnings/errors | |
# Run ESLint and Capture Output | |
- name: Run ESLint and Capture Output | |
working-directory: app/frontend | |
id: run_eslint | |
run: | | |
set +e | |
output=$(npm run lint --silent 2>&1) | |
exit_code=$? | |
echo "$output" | |
clean_output=$(echo "$output" | sed 's/\x1b\[[0-9;]*m//g') # Remove ANSI escape codes | |
echo "CLEAN_OUTPUT<<EOF" >> $GITHUB_ENV | |
echo "$clean_output" >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
grouped_errors="" | |
current_file="" | |
errors_for_file="" | |
has_errors=false | |
missing_lc_headers=false | |
lc_flagged_files="" | |
while IFS= read -r line; do | |
if echo "$line" | grep -q '^\s*\/'; then | |
if [ "$has_errors" = true ]; then | |
grouped_errors+="$current_file\n$errors_for_file\n------------------------------------------------------------------------------------------------------------------------------------------\n" | |
errors_for_file="" | |
has_errors=false | |
fi | |
current_file=$(echo "$line" | sed 's/\n//g') | |
elif echo "$line" | grep -q 'error'; then | |
errors_for_file+=" $line\n" | |
has_errors=true | |
if echo "$line" | grep -q 'missing header'; then | |
missing_lc_headers=true | |
errors_for_file+="!Flagged: LC header missing\n" | |
lc_flagged_files+="${current_file}\n" | |
fi | |
fi | |
done <<< "$clean_output" | |
if [ "$has_errors" = true ]; then | |
grouped_errors+="$current_file\n$errors_for_file\n" | |
fi | |
if [ -n "$grouped_errors" ]; then | |
echo "Errors found." | |
echo "GROUPED_ERRORS<<EOF" >> $GITHUB_ENV | |
echo -e "$grouped_errors" >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
echo "HAS_ERRORS=true" >> $GITHUB_ENV | |
else | |
echo "No relevant errors found." | |
echo "HAS_ERRORS=false" >> $GITHUB_ENV | |
fi | |
if [ "$missing_lc_headers" = true ]; then | |
echo "LC headers missing in one or more files." | |
echo "MISSING_LC_HEADERS=true" >> $GITHUB_ENV | |
echo "LC_FLAGGED_FILES<<EOF" >> $GITHUB_ENV | |
echo -e "$(echo -e "$lc_flagged_files" | sed '/^\s*$/d')" >> $GITHUB_ENV | |
echo "EOF" >> $GITHUB_ENV | |
else | |
echo "MISSING_LC_HEADERS=false" >> $GITHUB_ENV | |
fi | |
exit 0 | |
# Comment on PR with ESLint Errors and LC Headers | |
- name: Comment on PR with ESLint Errors and LC Headers | |
if: env.MISSING_LC_HEADERS == 'true' # Ensure we only comment if there are missing license headers | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const lintErrors = process.env.GROUPED_ERRORS; | |
const issueNumber = context.payload.pull_request.number; | |
const owner = context.repo.owner; | |
const repo = context.repo.repo; | |
let commentBody = ""; | |
if (process.env.MISSING_LC_HEADERS === 'true') { | |
const flaggedFiles = process.env.LC_FLAGGED_FILES.trim(); | |
commentBody += `## 🚨 SPDX-License Header Errors\n\nThe following files are missing the required license headers:\n\n\`\`\`\n${flaggedFiles}\n\`\`\`\nPlease ensure each of these files includes a valid SPDX license identifier to maintain licensing compliance.`; | |
} | |
if (lintErrors && process.env.MISSING_LC_HEADERS === 'true') { | |
commentBody += `\n\n## Frontend Project: ESLint Errors\n\`\`\`\n${lintErrors}\n\`\`\`\nPlease review and resolve the ESLint errors.`; | |
} | |
if (commentBody.trim() && issueNumber) { | |
await github.rest.issues.createComment({ | |
issue_number: issueNumber, | |
owner: owner, | |
repo: repo, | |
body: commentBody | |
}); | |
} else { | |
console.log("No relevant errors to report."); | |
} | |
- name: Fail the Workflow if LC Headers Are Missing | |
if: env.MISSING_LC_HEADERS == 'true' | |
run: | | |
echo "Failing the workflow because LC headers are missing." | |
exit 1 |