open-design/.github/workflows/refresh-contributors-wall.yml
Zakaria a46764fb1b
Some checks failed
ci / Validate workspace (push) Has been cancelled
landing-page-ci / Validate landing page (push) Has been cancelled
landing-page-deploy / Deploy landing page (push) Has been cancelled
github-metrics / Generate repository metrics SVG (push) Has been cancelled
first-commit
2026-05-04 14:58:14 -04:00

56 lines
1.9 KiB
YAML

name: refresh-contributors-wall
on:
# Daily refresh keeps the contributors wall CDN cache moving even when
# contributor data changes outside pull request merges.
schedule:
- cron: '0 1 * * *'
# Manual trigger: Use when you need to force-refresh the contributors wall
# outside the daily schedule (e.g., after a bulk contributor update or
# after fixing the cache_bust pattern in README files).
workflow_dispatch:
permissions:
contents: write
pull-requests: write
concurrency:
group: refresh-contributors-wall
cancel-in-progress: true
jobs:
refresh:
name: Refresh contributors wall cache bust
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
- name: Refresh cache bust date
run: |
DATE="$(date -u +%F)"
MATCHES="$(perl -0ne '$count += () = /cache_bust=\d{4}-\d{2}-\d{2}/g; END { print $count + 0 }' README*.md)"
if [ "$MATCHES" -eq 0 ]; then
echo "Warning: No cache_bust patterns found. README format may have changed."
exit 1
fi
perl -0pi -e "s/cache_bust=\d{4}-\d{2}-\d{2}/cache_bust=$DATE/g" README*.md
- name: Create refresh pull request
uses: peter-evans/create-pull-request@v8
with:
# Auth mirrors the metrics workflow: prefer a repository token that can
# create pull requests, with GITHUB_TOKEN as a fallback for repos where
# Actions-created PRs are allowed.
token: ${{ secrets.METRICS_TOKEN || secrets.GITHUB_TOKEN }}
add-paths: 'README*.md'
branch: automation/refresh-contributors-wall
delete-branch: true
commit-message: 'docs(readme): refresh contributors wall'
title: 'docs(readme): refresh contributors wall'
body: |
Refreshes the contributors wall cache bust date in README files.
Generated by the scheduled `refresh-contributors-wall` workflow.