mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-16 06:37:42 +01:00
114 lines
4.1 KiB
YAML
114 lines
4.1 KiB
YAML
name: Add Changed Icons comment
|
|
|
|
on:
|
|
pull_request_target:
|
|
paths:
|
|
- 'icons/*.svg'
|
|
branches:
|
|
- main
|
|
- fix-icon-preview
|
|
|
|
jobs:
|
|
lint-filenames:
|
|
if: github.repository == 'lucide-icons/lucide'
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v41
|
|
with:
|
|
files: icons/*
|
|
- name: Generate annotations
|
|
run: node ./scripts/lintFilenames.mjs
|
|
env:
|
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
|
|
lint-contributors:
|
|
if: github.repository == 'lucide-icons/lucide'
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v41
|
|
with:
|
|
files: icons/*
|
|
- uses: actions/setup-node@v4
|
|
- name: Install simple-git (safer and faster than installing all deps)
|
|
run: npm install simple-git
|
|
- name: Generate annotations
|
|
run: node ./scripts/updateContributors.mjs
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
FETCH_DEPTH: ${{ github.event.pull_request.commits }}
|
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
- name: Generate annotations
|
|
env:
|
|
ANNOTATION_SEVERITY: notice
|
|
ANNOTATION_TITLE: Contributors have changed!
|
|
ANNOTATION_DESCRIPTION: Don't add people who have only performed automatic optimizations.
|
|
run: |
|
|
git diff --unified=0 -- icons/*.json | # diff icon metadata (unified=0 gives the correct chunk line number)
|
|
perl -ne '/^(\+|- |@)/ && print' | # get chunks (lines that start with "+++", "@@", "+ ", "- ")
|
|
perl -pe 's/\n/%0A/' | # url encode line breaks (\n -> %0A)
|
|
perl -pe 's/%0A(\+\+\+ b\/)/\n\1/g' | # split chunks(one chunk per line)
|
|
perl -pe "s/\+\+\+ b\/([^@]*)%0A@@ -(\d+)[^\s]* \+(\d+)[^@]*@@(.*)/::$ANNOTATION_SEVERITY file=\1,line=\2,endLine=\3,title=$ANNOTATION_TITLE::$ANNOTATION_DESCRIPTION%0A\4/"
|
|
# Example for the previous substitution
|
|
# input: +++ b/icons/accessibility.json%0A@@ -2,0 +3 @@%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
|
|
# output: ::$ANNOTATION_SEVERITY file=icons/accessibility.json,line=2,endLine=3,title=$ANNOTATION_TITLE::$ANNOTATION_DESCRIPTION%0A%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
|
|
|
|
generate-changed-icons-comment:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
ref: refs/pull/${{ github.event.pull_request.number }}/merge
|
|
|
|
- name: Get changed files
|
|
id: changed-files
|
|
uses: tj-actions/changed-files@v41
|
|
with:
|
|
files: icons/*.svg
|
|
|
|
- name: Find Comment
|
|
uses: peter-evans/find-comment@v2
|
|
id: pr-comment
|
|
with:
|
|
issue-number: ${{ github.event.pull_request.number }}
|
|
comment-author: 'github-actions[bot]'
|
|
body-includes: Added or changed icons
|
|
|
|
- uses: actions/setup-node@v4
|
|
- name: Install svgson for code preview (safer and faster than installing all deps)
|
|
run: npm install svgson
|
|
|
|
- name: Generate comment markup
|
|
run: node ./scripts/generateChangedIconsCommentMarkup.mjs >> comment-markup.md
|
|
id: comment-markup
|
|
env:
|
|
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
|
|
|
- name: Create or update comment
|
|
uses: peter-evans/create-or-update-comment@v3
|
|
with:
|
|
comment-id: ${{ steps.pr-comment.outputs.comment-id }}
|
|
issue-number: ${{ github.event.pull_request.number }}
|
|
body-path: ./comment-markup.md
|
|
edit-mode: replace
|