Skip to content

Updated npm/jsDelivr shield counters in root readme #596

Updated npm/jsDelivr shield counters in root readme

Updated npm/jsDelivr shield counters in root readme #596

name: Sync README.md between <pkg>/ and <pkg>/docs
on:
push:
branches: [main]
paths: ["**/README.md"]
permissions:
contents: read
jobs:
build:
if: (github.repository == 'adamlui/js-utils') && (github.event.commits[0].committer.username != 'kudo-sync-bot')
runs-on: ubuntu-latest
env:
TZ: PST8PDT
steps:
- name: Checkout adamlui/js-utils
uses: actions/checkout@v5.0.0
with:
token: ${{ secrets.REPO_SYNC_PAT }}
path: adamlui/js-utils
fetch-depth: 2
- name: Sync README.md between <pkg>/ and <pkg>/docs
run: |
cd ${{ github.workspace }}/adamlui/js-utils
# Init pkg paths
PKG_ROOTS=($(find . -type d -name "docs" `# paths to docs/` \
! -path "*/node_modules/*" `# exclude node_modules` \
! -regex ".*\(minify.js\|scss-to-css\)/.*" `# exclude multi-platform pkgs w/ own sync scripts` \
-exec dirname {} \; | # get parent dir of found docs/
grep -Ev "^\.$")) # exclude repo root
# Sync READMEs per pkg
for pkg_root in "${PKG_ROOTS[@]}" ; do
# Init paths/content/mod timestamps
root_readme=$pkg_root"/README.md"
root_readme_content=$(git show HEAD:"$root_readme")
root_readme_modified=$(git log -1 --format="%ct" -- "$root_readme")
docs_readme=$pkg_root"/docs/README.md"
docs_readme_content=$(git show HEAD:"$docs_readme")
docs_readme_modified=$(git log -1 --format="%ct" -- "$docs_readme")
# Perform syncs of diff READMEs
if [[ "$root_readme_content" != "$docs_readme_content" ]] ; then
if (( $root_readme_modified > $docs_readme_modified )) ; then
cp -f "$root_readme" "$docs_readme"
echo "Copied $root_readme to $docs_readme"
src_folder="/${pkg_root#./}"
elif (( $docs_readme_modified > $root_readme_modified )) ; then
cp -f "$docs_readme" "$root_readme"
echo "Copied $docs_readme to $root_readme"
src_folder="/${pkg_root#./}/docs"
fi
fi
done
# Expose sync src for commit msg in next step
echo "SYNC_SRC=$src_folder" >> $GITHUB_ENV
- name: Escape backticks in commit msg
env:
COMMIT_MSG: ${{ github.event.head_commit.message }}
run: |
echo "ESCAPED_MSG<<EOF" >> $GITHUB_ENV
echo "$COMMIT_MSG" | sed 's/`/\`/g' >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Config committer
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PRIVATE_ID: ${{ secrets.GPG_PRIVATE_ID }}
run: |
gpg --batch --import <(echo "$GPG_PRIVATE_KEY")
git config --global commit.gpgsign true
git config --global user.name "kudo-sync-bot"
git config --global user.email "auto-sync@kudoai.com"
git config --global user.signingkey "$GPG_PRIVATE_ID"
- name: Push changes to adamlui/js-utils
if: env.SYNC_SRC
run: |
cd ${{ github.workspace }}/adamlui/js-utils
git pull # again to sync w/ concurrent workflow updates
git add .
git commit -n -m "$ESCAPED_MSG ↞ [auto-sync from $SYNC_SRC]" || true
git push