feat(community): links-only curated index (awesome-list style) (#59) #3
This file contains hidden or 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: Community Index | |
| # Regenerates the community index (community/README.md) from | |
| # community/projects.yaml after changes land on main. This keeps the index | |
| # current with zero manual action — contributors never run the generator, and | |
| # no one hand-edits community/README.md. | |
| # | |
| # It runs build_index.py (which only parses YAML — it never executes contributor | |
| # code) and commits the result back to main only if it changed. The path filter | |
| # excludes community/README.md so this workflow's own index commit does not | |
| # re-trigger it. | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "community/**" | |
| - "!community/README.md" | |
| permissions: | |
| contents: write | |
| concurrency: | |
| group: community-index | |
| cancel-in-progress: false | |
| jobs: | |
| regenerate: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| python-version: "3.12" | |
| - name: Regenerate community index | |
| run: | | |
| cd community/_ci | |
| uv sync | |
| uv run python build_index.py | |
| - name: Commit index if it changed | |
| run: | | |
| if [[ -n "$(git status --porcelain community/README.md)" ]]; then | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git add community/README.md | |
| git commit -m "chore: regenerate community index" | |
| git push | |
| else | |
| echo "Community index already up to date." | |
| fi |