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: read concurrency: group: refresh-contributors-wall cancel-in-progress: true jobs: refresh: name: Refresh contributors wall cache bust if: github.repository == 'nexu-io/open-design' runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6.0.2 - name: Refresh cache bust date run: | DATE="$(date -u +%F)" README_FILES=(README.md docs/i18n/README.*.md) MATCHES="$(perl -0ne '$count += () = /cache_bust=\d{4}-\d{2}-\d{2}/g; END { print $count + 0 }' "${README_FILES[@]}")" 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_FILES[@]}" - name: Generate Open Design bot token id: open-design-bot-token uses: actions/create-github-app-token@v3.2.0 with: client-id: ${{ secrets.BOT_APP_CLIENT_ID }} private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }} owner: nexu-io repositories: open-design permission-contents: write permission-pull-requests: write - name: Create refresh pull request uses: peter-evans/create-pull-request@v8 with: token: ${{ steps.open-design-bot-token.outputs.token }} add-paths: | README.md docs/i18n/README.*.md branch: automation/refresh-contributors-wall delete-branch: true commit-message: 'docs(readme): refresh contributors wall' author: 'open-design-bot[bot] <282769551+open-design-bot[bot]@users.noreply.github.com>' committer: 'open-design-bot[bot] <282769551+open-design-bot[bot]@users.noreply.github.com>' 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.